Apache camel 仍在等待关闭1个消息侦听器调用程序

Apache camel 仍在等待关闭1个消息侦听器调用程序,apache-camel,spring-jms,Apache Camel,Spring Jms,我有一条apache camel JMS路线 form("jms:queue:sourceQueue").to("messageProcessor") 我的要求是在3次消息处理失败时停止路由。在messageProcessor类中,在catch块中,我检查错误计数,当它达到3时,我将进行inovking camelContext.stopRoute(routeID, 3, TimeUnit.SECONDS); 我的路由不停止,spring的DefaultMessageListenerCont

我有一条apache camel JMS路线

form("jms:queue:sourceQueue").to("messageProcessor")
我的要求是在3次消息处理失败时停止路由。在messageProcessor类中,在catch块中,我检查错误计数,当它达到3时,我将进行inovking

camelContext.stopRoute(routeID, 3, TimeUnit.SECONDS);
我的路由不停止,spring的DefaultMessageListenerContainer在日志中写入以下行

关闭JMS侦听器容器

正在等待关闭消息侦听器调用程序

仍在等待关闭1个消息侦听器调用程序

我想弄清楚,是什么阻止DMLC停止? 我错过了什么


如果我使用
asyncStopListener=true
,那么camle路由会停止,但线程会一直在后台等待停止侦听器。

您是否正在从路由停止路由?如果你在周末做那件事 处理器,然后查看此常见问题解答

这意味着负责接收
javax.jms.Message的线程仍然处于活动状态。看起来您正试图阻止负责从容器管理的线程(即循环)处理目标的容器。谢谢。生成另一个线程来关闭路由确实有帮助。