我对AMQ相当新,我确实理解了制作消息,将其发送到队列以及异步消费的概念。
我的主要Spring配置如下
@Bean
public DefaultMessageListenerContainer listenerContainer(
MessageListenerAdapter adapter) {
DefaultMessageListenerContainer dmlc = new DefaultMessageListenerContainer();
dmlc.setConnectionFactory(connectionFactory());
dmlc.setMessageListener(adapter);
dmlc.setDestinationName("myQueue");
dmlc.setConcurrentConsumers(5);
return dmlc;
}
@Bean
MessageListenerAdapter adapter(MyClass myClass) {
MessageListenerAdapter messageListener = new MessageListenerAdapter(
myClass);
messageListener.setDefaultListenerMethod("myMethod");
return messageListener;
}
@Bean
public JmsTemplate jmsTemplate() {
JmsTemplate jt = new JmsTemplate(connectionFactory());
return jt;
}
使用jmsTemplate.convertAndSend()将内容发送到队列并使用myClass #myMethod
接收它们没有任何问题我的问题:如果抛出异常,我需要监听器停止使用消息。通常异常将告诉我远程站点处于脱机状态并稍后再尝试。如果我不停止这些消息,那么这些消息大多都会丢失。想要保持队列满员,直到我能够再次发送。
有可能吗?