顺序运行多个RabbitMQ队列

kt06eoxx  于 2023-10-20  发布在  RabbitMQ
关注(0)|答案(1)|浏览(128)

我们使用Sping Boot AMQP来处理消息。我们有多个队列,其中一些依赖于其他队列。我想确保队列等待其他人完成他们的工作。举例来说:
假设我有两个队列(A和B),每个队列有20条消息等待处理。我想让B等待A处理完20条消息后再开始工作。
有没有一个内置的方法来实现这一点?
我们尝试了AMQP的优先级,但没有工作。

vxqlmq5t

vxqlmq5t1#

您可以在@RabbitListener上将autoStartup设置为false。(您可以使用RabbitListenerEndpointRegistry bean通过id停止/启动容器)。如果您不使用注解并自己创建容器bean,那么只需使用容器bean来管理其生命周期。
然后,为ListenerContainerIdleEvent s启用事件发布;然后你可以检测到一个容器何时空闲,停止它,然后启动下一个。
请访问https://docs.spring.io/spring-amqp/docs/current/reference/html/#idle-containers

相关问题