apache-camel - 当 ActiveMQ 中没有消息时停止 Camel Route
问题描述
如果我们在 ActiveMQ 中没有更多消息,有没有一种方法可以停止 Camel 路由?我需要的场景。
- 从 ActiveMQ 队列中获取所有消息并处理它们。
- 再轮询 2-3 次以检查我们是否还有其他新消息,是的,执行步骤 #1。
- 如果目前没有消息停止路线并在 5 分钟后重新开始(我猜这可以通过轮询策略来实现)。
解决方案
看看这个答案。它使用调度程序和轮询策略 (POJO) 轮询队列。
- 使用调度程序,您可以选择轮询的间隔
- 随着轮询策略消费者的超时,您可以停止消费(例如,如果 5 秒内没有消息到达,则队列可能为空)
如果您想完全停止/启动消费者,您可以将Camel Control Bus添加到组合中。然后,您可以启动和停止消费者路线。
推荐阅读
- javascript - 确定考试题目数量的方法
- javascript - Discord.js 在频道中发送过消息的唯一用户列表
- php - Symfony 3 / sonata_type_collection 更改查询每个添加行
- c++ - 多重集:多重集添加多个单词的版本并且无法处理大量文本的问题
- python - 如何遍历 json 值并比较所有 json 值,如果为真则返回?
- python-3.x - 如何避免动态生成中的全局变量。tkinter 形式?函数插入的值不会保存,手动输入的值会在代码更改后保存
- android - ARCore – 我可以把模型放在其他非平面的地方吗?
- javascript - 将数组值分配给顶级对象javascript
- mysql - 连接两个表时在mysql中查找重复值
- java - 为什么我必须在 Java 中链接 Stream 操作?