-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nsqd: deferred messages not deferred with --mem-queue-size=0 #1375
Comments
my docker deploy
and I use this:
the message which can not defer. then I chaneg nsq has bug? or this sdk has bug? |
Deferred messages forget their deferred state/timing when stored to the disk queue, this is a limitation of the current disk format. So using |
I'm pretty sure this is nsqd related so I'll move this to the other repo |
I think this change in behavior was caused by #1159 Previously, the "memoryMsgChan" would exist, but be unbuffered, but this allowed messages to instantly pass through the topic to each channel's deferred pqueue. But now, that chan does not exist when It seems like, if any channels exist, the topic "memoryMsgChan" should exist (and should be buffered to avoid random interleaving of messages going to backendChan and through memoryMsgChan). Hmm. Anyway, |
Thanks your suggestion! Now I use So odd... |
correct ... it's a known limitation, addressing it would require something like #1170 ... I'm thinking about it :) |
Not deferred messages, I think: both the topic and the channels have a mem-queue, but the topic mem-queue is not actually used, except when there are zero channels, and also just for a millisecond or two when distributing copies of messages to channels (with metadata). Then, in the channels, deferred messages do not go to the disk-queue, they go to a separate in-memory deferred queue, I think (then when their time is up they go to the normal mem-queue or disk-queue).
correct, this is the bug we already knew about, which #1170 addresses |
Avoid restart nsq will cause defer message send as common message. I has below temporary way to patch my business requirements of high availability
for others' reference. and hope nsq will soon fix this bug 💪 |
I use nsq 1.2.1 and this go-nsq sdk , but defer message has problem, anyone try it?
The text was updated successfully, but these errors were encountered: