- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 RabbitMQ 的队列上有这个约束:
队列中的下一条消息在上一条消息(正在处理的消息)被确认之前不能出队。
通过这个我将实现事件的有序处理和跨多个队列的并行处理。我如何/我可以为此配置 RabbitMQ?
编辑(澄清):将有许多消费者都试图从所有队列中获取工作,并且由于他们无法从正在处理未确认事件的队列中获取工作 - 维持有序处理。
最佳答案
Next message in the queue can't be dequeued before previous message (the one being processed) is acked.
您可以通过 consumer prefetch limit 来做到这一点对于单个消费者。
Through this I will achieve ordered processing of events and parallel processing across multiple queues.
不幸的是,这不会产生您想要的效果。
可以为单个消费者设置。该消费者将等待一条消息被确认,然后再获取下一条消息。
但是,这适用于单个消费者,不适用于队列。
如果你有 2 个消费者,他们每个人都会并行处理一条消息。如果您有 10 个消费者,则将并行处理 10 条消息。
按顺序处理每条消息的唯一方法是让一个消费者的预取值为 1。
关于RabbitMQ:下一条消息只能在前一条消息被确认后才能出队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32436855/
我的 JavaScript 代码中有一道数学题。我需要将给定数量的玩家随机分成 2 队,这样每次 - 如果玩家想再次比赛 - 团队都会重新组成,并且在形成所有组合之前他们应该不同。 假设我有 4 个玩
我是一名优秀的程序员,十分优秀!