Ask*_*mov 7 java timer apache-camel
我有这样的情况:
我希望我的路线不会在大规模任务进行时重新触发。也就是说,定时器可能会发出事件,但它不应该以某种方式导致触发路由。当大量任务完成后,定时器应该可以重新开始路由。
实现这种行为的最佳方法是什么?
小智 1
我将创建一个 bean 来保存路由的运行/完成状态,并使用设置状态的方法和测试状态的方法。然后我会做这样的事情:
<route>
<from uri="timer:...">
<filter>
<method ref="routeStateBean" method="isStopped">
<to uri="bean:routeStateBean?method=routeStarted"/>
....
<to uri="bean:routeStateBean?method=routeStopped"/>
</filter>
</route>
Run Code Online (Sandbox Code Playgroud)