Spring amqp 停止rabbitMQ应用程序(Ctrl-C)
我试图找出在RabbitMQ应用程序被Ctrl-C或正常关机等中断中断时,安全停止RabbitMQ应用程序的正确方法 我有一个ApplicationContext.close(带有一个注册的钩子)就足够了吗?它将隐式地处理从ConnectionFactory到Listeneres的完全正常关闭 我试图实现一些博客中提到的仅针对侦听器的destroy 当我有这样的配置时Spring amqp 停止rabbitMQ应用程序(Ctrl-C),spring-amqp,Spring Amqp,我试图找出在RabbitMQ应用程序被Ctrl-C或正常关机等中断中断时,安全停止RabbitMQ应用程序的正确方法 我有一个ApplicationContext.close(带有一个注册的钩子)就足够了吗?它将隐式地处理从ConnectionFactory到Listeneres的完全正常关闭 我试图实现一些博客中提到的仅针对侦听器的destroy 当我有这样的配置时 <rabbit:listener-container connection-factory="connectionFact
<rabbit:listener-container connection-factory="connectionFactory" >
<rabbit:listener id = "X" ref="onMessageX" queue-names="Z" />
<rabbit:listener id = "A" ref="onMessageB" queue-names="A" />
<rabbit:listener id= "C" ref="onMessageC" queue-names="C" />
</rabbit:listener-container>
当我试着
SimpleMessageListenerContainer容器=context.getBean(SimpleMessageListenerContainer.class)
我最终得到了3个容器bean,当我期望得到一个容器bean时,每个侦听器都变成了一个容器
在使用getBeansOfType进行映射和迭代之后,我能够关闭每个使用停止。如果您将其保存在destroy中,并且applicationContext.close发生,则会发生关机
我是不是在做一些太复杂和愚蠢的事情?如果我们需要从连接工厂开始停止,那么需要停止的内容和所有内容。您对
的观察完全正确。目标MessageListenerContainer
s的数量与指定的
子元素的数量相同
当发生
Ctrl-C
时,正常的ApplicationContext.close()
应该能够让您优雅地停止所有容器。您对
的观察完全正确。目标MessageListenerContainer
s的数量与指定的
子元素的数量相同
当发生Ctrl-C
时,正常的ApplicationContext.close()
应该可以正常停止所有容器