-
Notifications
You must be signed in to change notification settings - Fork 60
Dropped message because queue is too full #138
Comments
Thanks for your questions. We did recently release 3.4.1-alpha and I was about to recommend you try it out to see if it has resolved your issues. Keep in mind that 3.3.1 has also always only been in alpha state, so the answer to "is it ready to be used in production?" should be the same across the two versions. After we see more traffic through 3.4.1 and build more confidence in its reliability, we do intend to take it out of alpha in the future. |
Since you offer no alternatives and no woraround, I will unfortunately have to do so. That being said, I must say that the outcome is pretty dissaponting:
It's even more dissapointing given the fact that the library is related to a product that we pay for. |
@lubird I confirm that 3.4.0-alpha still drops messages. I don't have the log I did a burst of 4402 track + 4402 identify calls and only 360 of the I suggest that you look at the It usually yields simpler and safer code. |
As a workaround, I tried to use the Segment library in synchronous mode: var segmentConfig = new SegmentSdk.Config();
segmentConfig.SetAsync(false); My code that sends burst of analytics is part of a nightly job that wants to send more than 5000x identify and 5000 x track events. So, now that I am in synchronous mode, it takes a very long time to send these 10000 messages to the Segment server. Furthermore, my code runs in an AWS lambda which is limited to 15 minutes. Given the high number of messages and the time constraints that I have, all messages can't be sent in 15 minutes. So, using the synchronous mode is not an option for me. |
I now have a successfull work around. Basically, the algorithm is the following:
I created a burst of 1114 track + 1114 identify. With this workaround in place, 1113 identify made their way to Segment. So it's not perfect, but it's much better than before. |
Thanks for continuing to follow up on this thread @mabead. We appreciate you reporting this issue as well as sharing your work-arounds. I've noted the issue on our backend. We'll for sure take a look at this when we can. In the meantime, I encourage you to submit a PR for this issue if you feel like you have a workable fix you can share with the community! |
Sorry @lubird but since Segment is a product that we pay for, I am not very keen on submitting PRs. Furthermore, the fix is most likely not trivial and would require more than a few hours. |
@mabead |
I wrote this little utility to try to replicate the issue: https://github.com/mabead/Analytics.NET.Repro_issue_138 Here's what I get:
We therefore see that both Note that I initially incorrectly reported that Thanks for your help on this. We will definitely switch to |
After many years of using Segment, I just realized that we sometimes call the "Identify" or "Track" method and events are lost because of this code (note that we are using version 3.3.1-alpha):
So no exceptions are raised. There is only a warning being triggered. Pretty annoying. For me, it's like doing an SQL INSERT where the database answered "success" when in fact it did "well you know, I was too busy. I just dropped your request... without letting you know. Oh yeah, I sent you a letter about it. If you're lucky you will receive it. But note that the letter will not let you know what I dropped exactly. It will just let you know that I was too busy."
What is your suggestion to make sure that no events are lost?
The text was updated successfully, but these errors were encountered: