对于某些 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/