0

我有一条骆驼路线来使用来自 JMS 主题的消息。当路由开始,并且主题中没有消息时,我想引发异常并停止该过程。

我正在使用来自 Apache Camel 的 JmsComponent,它使用来自 Spring 的 DefaultMessageListenerContainer 并被定义为事务性的。当前的行为是路由开始但它无限期地等待消息。

是否有任何解决方案来检查消息是否存在并在不存在时简单地停止路由?

4

1 回答 1

0

您需要定义等待消息的时间限制,并得出问题出问题的结论。

然后,您使用完成超时为(例如)30 秒的聚合器。

这样,如果您超过 30 秒没有收到有关该主题的消息,那么您可以采取任何您喜欢的操作。

from("mq:topic:xyz")
    .aggregate(constant(true), new TakeLastAggregationStrategy())
    .completionTimeout(30000)
    .to("direct:raiseException")
于 2015-02-20T20:26:11.000 回答