RabbitMQ勾选了我正在计划的项目的所有框,然后保存一个。我将让不同的工作人员在队列中监听,重要的是他们首先要处理最新的消息(即最新的序列号)(LIFO)。
我的应用程序使得较新的消息几乎已经淘汰了较旧的消息。如果您有空余的工作人员,您仍然可以处理较旧的消息,但重要的是要先处理较新的消息。
在浏览各种论坛之后,这样我只能看到一个解决方案,那就是客户首先应该处理一条消息:
如果客户中途死亡,则很丑陋且成问题。但是,再见有人在这里有更好的解决方案。
我的研究(部分)基于:
注意:对于某些队列,预期的消息通信量将大致在1毫秒/小时的范围内,而对于其他队列,则在100/分钟的范围内。所以没有恒星。
最佳答案
由于没有回复,我想我做得很好;)
无论如何,在与其他利益相关者讨论了需求之后,我决定现在可以放弃LIFO需求。当涉及到这一点时,我们可以为此担心。
我们可能最终会采用的解决方案是,让工作人员打开第二个队列,主服务器可以使用该队列让工作人员知道要忽略的作业,并提供其他控制/监视信息(无论如何我们都需要)。
实现AMQP 1.0规范的RabbitMQ在这里也可能会有所帮助。
因此,我现在将此问题标记为已回答。仍有其他人可以自由添加或改进。
关于RabbitMQ重新排序消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4971437/