java - 在挂起状态下启动路由并安排恢复

标签 java timer routes apache-camel

对于某些 Camel 路线,我需要以下行为:路线必须以 Activity 状态启动,但如果当前时间介于 X AM 和 Y PM 之间,则也必须暂停。

所有路线都以计时器开始(例如每 30 秒、每 5 分钟……),但我希望该路线仅在一天中的给定时间段内触发。

我可以使用 ScheduledRoutePolicy 来安排当前 Activity 和正在运行的路线的自动暂停和恢复。

但是我不明白如何在暂停状态下启动路线,例如,如果当前时间是路线应该暂停的时间段。 RoutePolicy 安排了一个暂停/重新启动路线的作业,但是当 Camel 启动时,我的路线都被解雇了,无论路线是否应该暂停。

实现这一目标的唯一方法似乎是将时间参数放入计时器中,从而设置第一个事件当天的时间。

在这种情况下,如果在预定时间之前,则计时器不会触发任何事件。 ScheduledPolicy 然后将负责暂停路由,然后在一段时间后恢复路由。

最佳答案

您可以使用 autoStartup 选项将路由设置为不启动。有关更多详细信息,请参阅此页面:http://camel.apache.org/configuring-route-startup-ordering-and-autostartup.html

关于java - 在挂起状态下启动路由并安排恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16484712/

相关文章:

java - (java) 快速排序,先按数字对数字-字符对进行排序,然后按字符排序

android - CountDownTimer 未取消 --- 在 Cancel() 后继续运行

ruby-on-rails - 另一个 Rails 没有路由匹配 [补丁]

ruby-on-rails - 如何更改 Controller /:id to controller/:name in Rails 3? 的 Rails 路由

go - 如何在 Golang(go-chi) 路由器上同时提供 "/something"和 "/something/"?

java - Wicket 应用程序、序列化和 Java 计时器

java - JMM中的执行定义

java - 谁能解释这个方法签名? <K> 和 K... 代表什么?

c - STM32F769I-DISCO 上的 1s 定时器

java - 为什么我的 Java 计时器在看似随机的迭代次数后停止?