我使用的是 Spring Boot 版本 1.3.2。我正在使用 @JmsListener 来使用来自 activemq 的消息来获取我使用 JmsTemplate 创建/生成的消息。这是代码:
@JmsListener(destination = "myqueue")
public void consumeMsg(Object requestBody)
try {
javaMailSender.send(requestBody);
} catch (MailException ex) {
LOG.error(ex.getLocalizedMessage(), ex);
if(ex.getMessage().contains(SMTP_CONNECTION_FAILURE) && activeMqMsg.getIntProperty("RETRYCOUNT") == 1) {
producer.send("myqueue",requestBody)
}
else {
producer.send("manualqueue",requestBody)
}
}
}
现在,当 smtp 出现连接失败错误时,我想暂停 @JmsListener 一段时间,然后再次开始使用消息。对于使用 @JmsListener 的用例,我还没有看到更好的示例。由于我使用的是Spring Boot,我在应用程序属性中添加了activemq连接参数,我不需要编写任何代码来创建连接工厂,设置队列...等你能帮忙看看如何做到这一点吗?
获取参考JmsListenerEndpointRegistry
豆(例如@Autowire
)并致电stop()
- 它会阻止所有听众。start()
将启动所有侦听器。
如果您有多个侦听器并且只想停止 1 个侦听器,请给它一个id
属性和用途registry.getListenerContainer(id)
,然后停止/启动容器本身。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)