对于某些Camel路由,我需要以下行为:路由必须以活动状态启动,但如果当前时间介于X AM和Y PM之间,则必须暂停。
所有路线都以自己的定时器开始(例如每30秒,每5分钟......)但我希望路线仅在当天的给定时段内被触发。
我可以使用ScheduledRoutePolicy安排当前活动和运行的路由的自动挂起和恢复。
但是我不明白如何在暂停状态下启动路线,例如,当前时间是路线应该暂停的时间段。 RoutePolicy计划暂停/重新启动路由的作业,但是当Camel启动时,我的路由全部被触发,无论该路由是否应该被暂停。
我可以实现它的唯一方法,似乎在时间参数中加入计时器,从而设置第一个事件的当天时间。
在这种情况下,如果它在预定时间之前,则计时器不会触发任何事件。然后,ScheduledPolicy将负责暂停路由,然后在一段时间后恢复路由。
答案 0 :(得分:2)
您可以将路由设置为不以autoStartup选项开头。有关详细信息,请参阅此页:http://camel.apache.org/configuring-route-startup-ordering-and-autostartup.html