JMS 侦听器如何检查容器是否关闭

问题描述

目前我的任务是在消息队列连接失败 5 次时停止我的 Spring Boot 应用程序。我发现了

DefaultJmsListenerContainerFactory.setBackOff()

这将在 5 次尝试失败后成功停止容器,但是当我使用时

@JmsListener(containerFactory="myFactory")

我没有明确地创建容器,而 spring 正在为我做这件事。那么如何检查容器是否关闭关闭 spring boot 应用程序?

解决方法

import javax.jms.ConnectionFactory;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;

    @Autowired
    private ConnectionFactory connectionFactory;

    @Bean("myFactory")
    public DefaultJmsListenerContainerFactory myCustomisedListenerFactory() {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory);
        // interval,max number of attempts
        factory.setBackOff(new FixedBackOff(1000,5));
        return factory;
    }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...