我在我的spring引导应用程序中使用jmslistener和client\u acknowledge session类型轮询sqs,它工作正常,对于错误我只抛出一个异常,jmslistener将消息放回sqs。我添加了带有@async和@enableasync(在config中)的注解,simpleasyncuncaughtexceptionhandler.class正在捕获异常。我相信这就是为什么在发生错误的情况下sqs消息没有被发送到sqs的原因。请告诉我@async annotation和@jmslistener annotation是否合理。
@Async
@JmsListener(destination = "${queue.name}")
public void listenEvent(@Headers Map<String, String> headers, @Payload String event) {
//process event
}
1条答案
按热度按时间ki0zmccv1#
@Async
以及@JmsListener
在组合中没有意义。这个
@JmsListener
方法已在其自己的线程中运行。