對於某些駱駝路線,我需要以下行爲:路線必須以活動狀態啓動,但當前時間介於X AM和Y PM之間時也必須暫停。在暫停狀態下啓動路線並安排履歷
所有的路線都以一個定時器開始(例如每隔30秒,每隔5分鐘...),但是我希望路線只在當天的給定時間段內被觸發。
我可以使用ScheduledRoutePolicy計劃當前活動並正在運行的路由的自動掛起和恢復。
但我不明白如何在暫停狀態下啓動路由,例如,當前時間是路由應該暫停的時間段。 RoutePolicy計劃掛起/重新啓動路線的作業,但是當駱駝啓動我的路線時,所有路線都會被啓動,無論路線是否應該暫停。
我可以實現它的唯一方法,似乎在計時器中放入時間參數,從而設置第一個事件的一天的時間。
在這種情況下,如果它在預定時間之前,那麼定時器不會觸發任何事件。然後,ScheduledPolicy將負責暫停路線,然後在一段時間後它將恢復路線。
感謝您的答覆,我知道autostartup = false參數。但是這樣做,路線的初始狀態就會停止。從駱駝文件,他們的建議是暫停/恢復路線,而不是開始/停止它們http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/CamelContext.html – emas 2013-05-11 15:25:47
沒關係。路由策略也會處理它,以便第一次啓動路由,然後掛起/恢復。雖然你可以在你的路由策略中配置你想要做的事情。 – 2013-05-11 15:53:59
我讀了CronScheduledRoutePolicy的源代碼,該類擴展了ScheduledRoutePolicy,但它不恢復路由「停止」,它只恢復暫停的路由。所以,這有點棘手,我想我必須編寫一個定製的策略來管理我的案例。 – emas 2013-05-12 12:52:00