对于某些骆驼路线,我需要以下行为:路线必须以活动状态开始,但如果当前时间在 X AM 和 Y PM 之间,也必须暂停。
所有路线都以从开始的计时器开始(例如,每 30 秒,每 5 分钟,...),但我希望该路线仅在一天中的给定时间段内触发。
我可以使用 ScheduledRoutePolicy 安排当前处于活动状态和正在运行的路线的自动暂停和恢复。
但是我不明白如何在暂停状态下启动路线,例如,如果当前时间是路线应该暂停的时间段。RoutePolicy 安排一个暂停/重新启动路由的作业,但是当 Camel 启动时,我的路由都被触发,无论路由是否应该被暂停。
我可以实现它的唯一方法似乎是将时间参数放入计时器中,从而设置第一个事件的时间。
在这种情况下,如果它在预定时间之前,则计时器不会触发任何事件。ScheduledPolicy 将负责暂停路由,然后在一段时间后恢复路由。