我们使用Sping Boot AMQP来处理消息。我们有多个队列,其中一些依赖于其他队列。我想确保队列等待其他人完成他们的工作。举例来说:假设我有两个队列(A和B),每个队列有20条消息等待处理。我想让B等待A处理完20条消息后再开始工作。有没有一个内置的方法来实现这一点?我们尝试了AMQP的优先级,但没有工作。
vxqlmq5t1#
您可以在@RabbitListener上将autoStartup设置为false。(您可以使用RabbitListenerEndpointRegistry bean通过id停止/启动容器)。如果您不使用注解并自己创建容器bean,那么只需使用容器bean来管理其生命周期。然后,为ListenerContainerIdleEvent s启用事件发布;然后你可以检测到一个容器何时空闲,停止它,然后启动下一个。请访问https://docs.spring.io/spring-amqp/docs/current/reference/html/#idle-containers
@RabbitListener
autoStartup
false
RabbitListenerEndpointRegistry
id
ListenerContainerIdleEvent
1条答案
按热度按时间vxqlmq5t1#
您可以在
@RabbitListener
上将autoStartup
设置为false
。(您可以使用RabbitListenerEndpointRegistry
bean通过id
停止/启动容器)。如果您不使用注解并自己创建容器bean,那么只需使用容器bean来管理其生命周期。然后,为
ListenerContainerIdleEvent
s启用事件发布;然后你可以检测到一个容器何时空闲,停止它,然后启动下一个。请访问https://docs.spring.io/spring-amqp/docs/current/reference/html/#idle-containers