如果我需要确保同时没有另一个消费者正在处理另一个消息(具有相同的产品ID),我想知道从队列处理消息的最佳实践是什么。 我的问题是,如果有人用产品ID进行订购和订购,而同一产品又附带了另一条消息,我想一个接一个地处理它们,而不是并行处理。 我正在考虑使用redis,我将在其中保存正在处理的id,并在处理结束后清除它们。但也许对于这种情况有一些更好的解决方案。
答案 0 :(得分:0)
在rabbitmq中,同一队列中的消息按“发布顺序”排序。这意味着,将按照发送到队列的顺序来接收消息。
看看消息的顺序:https://www.rabbitmq.com/semantics.html#ordering
如果要完全按发布顺序使用邮件,则应使用一个队列的“直接交换”。
此外,您必须确切地拥有一个使用者,并发限制设置为一个。