rabbitmq - RabbitMQ 在消费期间阻塞其他消费者
问题描述
在将下一个任务/消息/项目发送给另一个消费者之前,队列有没有办法等到任务/消息/项目在处理中完成?这是我想要完成的场景:
- 三个消费者(cons_A、cons_B、cons_C)订阅一个队列(task_queue)
- 当发布者将任务添加到“task_queue”时,队列将发送(或消费者订阅之一)到任务(假设 cons_B 订阅)。
- 在将另一个任务添加到“task_queue”后,队列会阻止其他消费者订阅,直到正在进行的消费完成(直到 cons_B 响应完成,无论其成功与否都无关紧要)。
在让另一个消费者订阅下一个任务之前,队列/交换等待正在进行的任务完成。
我正在考虑将队列大小设置为“1”并等待消费者订阅时确认任务完成。但这似乎不是最好的方法,因为在消费过程中添加的任务会被拒绝。
在 RabbitMQ 中可以这样做吗?
解决方案
RabbitMQ 团队监控邮件列表,rabbitmq-users
有时只在 StackOverflow 上回答问题。
据我所知,这种情况不支持开箱即用。如果您在邮件列表中描述您的用例,那么已经实现类似功能的人可能会提供输入。
推荐阅读
- c# - How can I make a bordered circle button expand into a bordered pill button on hover in Unity, and still maintain the border thickness?
- dialog - 如何在执行操作时隐藏模型对话框?
- spring - 如何增强 Spring Boot REST API 以处理数万或更多的传入请求?
- sql - 如何根据间隔过滤sql中的行
- javascript - 如何像 React 中的 {...props} 一样在 Vue 中解构 props?
- python - Pyscreenshot Fedora/Linux 中的黑色截图
- java - 没有 Spring 的自定义 prometheus 指标
- mysql - 在 MySQL 中高效计算大求和
- mongodb - Mongodb:“数据库”对象上的“查找”方法失败,因为不存在这样的方法
- python - 在 Cython cdef 类中定义自定义类