请使用 Spring AMQP 4.0.2(最新稳定版本)!spring-doc.cadn.net.cn

容器管理

为注解创建的容器未注册到应用程序上下文中。您可以通过在 getListenerContainers() 上调用 RabbitListenerEndpointRegistry bean 来获取所有容器的集合。然后,您可以遍历此集合,例如停止或启动所有容器,或在注册表本身上调用 Lifecycle 方法,这将对每个容器执行相应操作。spring-doc.cadn.net.cn

您还可以通过使用其 id 来获取对单个容器的引用,使用 getListenerContainer(String id) —— 例如,registry.getListenerContainer("multi") 表示上述代码片段创建的容器。spring-doc.cadn.net.cn

从版本 1.5.2 开始,您可以使用 getListenerContainerIds() 获取已注册容器的 id 值。spring-doc.cadn.net.cn

从版本 1.5 开始,现在您可以将 group 分配给容器的 RabbitListener 端点。spring-doc.cadn.net.cn

默认情况下,停止容器会取消消费者,并在停止前处理所有预取的消息。从 2.4.14、3.0.6 版本开始,您可以将 forceStop 容器属性设置为 true,以在当前消息处理完毕后立即停止,导致任何预取的消息被重新入队。这在某些场景下非常有用,例如当使用独占或单活跃消费者时。spring-doc.cadn.net.cn