<bean id="rabbitListenerContainerFactory" class="org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory">
<property name="connectionFactory" ref="connectionFactory" />
<property name="concurrentConsumers" value="5"/>
<property name="maxConcurrentConsumers" value="10"/>
<property name="prefetchCount" value="10"/>
<property name="defaultRequeueRejected" value="false"/>
</bean>
<rabbit:listener-container connection-factory="connectionFactory" concurrency="5" prefetch="10" acknowledge="auto" idle-event-interval="500000000000000">
<rabbit:listener ref="rabbitListenerContainerFactory" queue-names="queue.email" />
<rabbit:listener ref="rabbitListenerContainerFactory" queue-names="queue.sms" />
</rabbit:listener-container>
の下に、私はRabbitMQのノードが停止している間にも例外を取得していないことを期待していますように私のコードです
org.springframework.amqp.rabbit.connection.AutoRecoverConnectionNotCurrentlyOpenException: Auto recovery connection is not currently open
at org.springframework.amqp.rabbit.connection.SimpleConnection.isOpen(SimpleConnection.java:95)
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$ChannelCachingConnectionProxy.isOpen(CachingConnectionFactory.java:1151)
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.getChannel(CachingConnectionFactory.java:420)
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.access$1500(CachingConnectionFactory.java:97)
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$ChannelCachingConnectionProxy.createChannel(CachingConnectionFactory.java:1084)
at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1435)
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1411)
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1387)
at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:336)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.redeclareElementsIfNecessary(SimpleMessageListenerContainer.java:1114)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$1100(SimpleMessageListenerContainer.java:95)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1333)
at java.lang.Thread.run(Thread.java:745)
C誰もがこの問題を避けるために私たちを助ける?
プロパティautoRecoveryEnabledはSimpleListenerContainerファクトリでは使用できません.i CachingConnectionFactoryでチェックしました。また、autoStartupも利用可能です。設定を追加すると非常に役立ちます。 – Balaji
私たちはそのプロパティを設定することを奨励したくありません。 1.7.0を使用していない限り、com.rabbitmq接続ファクトリ(1.7.0を使用している場合1.7.5にアップグレードする必要があります)を挿入しない限り、このプロパティはデフォルトでfalseです。 com.rabbitmq接続ファクトリーの場合は、そのプロパティーをfalseに設定する必要があります。 –