所以问题是如何临时停止和启动使用 spring 使用休闲方式创建的 jms 侦听器:
<amq:connectionFactory id="exampleJmsFactory" brokerURL="tcp://${jms.broker.url}" />
<jms:listener-container concurrency="1" connection-factory="exampleJmsFactory" destination-type="queue" message-converter="exampleMessageConverter">
<jms:listener destination="incoming.example.client.queue" ref="exampleProductsMessageConsumer" method="consume"/>
</jms:listener-container>
<bean id="exampleProductsMessageConsumer" class="com.unic.example.jms.receive.JmsExampleProductsMessageConsumer" scope="tenant"/>
所以基本上是什么问题。我们确实有一个客户端可以随时运行的初始化/更新机制,并且在此初始化/更新期间,我想停止使用任何消息,因为此时系统无法使用,如果有消息出现,它将丢失。
那么我如何使用 API 停止侦听器或侦听器容器或整个连接。我发现一个类 AbstractJmsListeningContainer 有停止/启动但我怎么能得到它?我的意思是这些 jms: listener 和 listener-containers 都没有名字或类似的东西。