顺序运行多个 RabbitMQ 队列

问题描述 投票:0回答:1

我们使用 Spring Boot AMQP 来处理消息。我们有多个队列,其中一些队列依赖于其他队列。我想确保队列等待其他人完成他们的工作。例如:

假设我有 2 个队列(A 和 B),每个队列有 20 条消息等待处理。我想让B等A处理完20条消息再开始工作。

有没有内置的方法可以实现这一点?

我们尝试了AMQP的优先级但没有成功。

rabbitmq spring-amqp spring-rabbit
1个回答
0
投票

您可以将

autoStartup
上的
false
设置为
@RabbitListener
。 (您可以使用
id
bean 通过其
RabbitListenerEndpointRegistry
停止/启动容器)。如果您不使用注释并自己创建容器 bean,那么只需使用容器 bean 来管理其生命周期。

然后,为

ListenerContainerIdleEvent
启用事件发布;然后您可以检测容器何时空闲,停止它,然后启动下一个容器。

参见https://docs.spring.io/spring-amqp/docs/current/reference/html/#idle-containers

© www.soinside.com 2019 - 2024. All rights reserved.