|
请使用 Spring AMQP 4.0.2(最新稳定版本)! |
容器管理
为注解创建的容器未注册到应用程序上下文中。您可以通过在 getListenerContainers() 上调用 RabbitListenerEndpointRegistry bean 来获取所有容器的集合。然后,您可以遍历此集合,例如停止或启动所有容器,或在注册表本身上调用 Lifecycle 方法,这将对每个容器执行相应操作。
您还可以通过使用其 id 来获取对单个容器的引用,使用 getListenerContainer(String id) —— 例如,registry.getListenerContainer("multi") 表示上述代码片段创建的容器。
从版本 1.5.2 开始,您可以使用 getListenerContainerIds() 获取已注册容器的 id 值。
从版本 1.5 开始,现在您可以将 group 分配给容器的 RabbitListener 端点。
默认情况下,停止容器会取消消费者,并在停止前处理所有预取的消息。从 2.4.14、3.0.6 版本开始,您可以将 forceStop 容器属性设置为 true,以在当前消息处理完毕后立即停止,导致任何预取的消息被重新入队。这在某些场景下非常有用,例如当使用独占或单活跃消费者时。