首页 > 解决方案 > 当 ActiveMQ 中没有消息时停止 Camel Route

问题描述

如果我们在 ActiveMQ 中没有更多消息,有没有一种方法可以停止 Camel 路由?我需要的场景。

  1. 从 ActiveMQ 队列中获取所有消息并处理它们。
  2. 再轮询 2-3 次以检查我们是否还有其他新消息,是的,执行步骤 #1。
  3. 如果目前没有消息停止路线并在 5 分钟后重新开始(我猜这可以通过轮询策略来实现)。

标签: apache-camelactivemqspring-jms

解决方案


看看这个答案。它使用调度程序和轮询策略 (POJO) 轮询队列。

  • 使用调度程序,您可以选择轮询的间隔
  • 随着轮询策略消费者的超时,您可以停止消费(例如,如果 5 秒内没有消息到达,则队列可能为空)

如果您想完全停止/启动消费者,您可以将Camel Control Bus添加到组合中。然后,您可以启动和停止消费者路线。


推荐阅读