我想使用camel->quartz组件来安排一些工作在指定的时间间隔完成。
但我希望以同步的方式做到这一点。意味着,计划作业的下一次执行只能在当前执行完成后开始。
我为 Servicemix 创建了路由和调度程序服务。
QuartzRoute.java
public class QuartzRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("quartz://myGroup/myTimerName?cron=0/1+*+*+*+*+?").process(new SchedulerService());
}
Run Code Online (Sandbox Code Playgroud)
}
SchedulerService.java
public class SchedulerService implements Processor {
public void process(Exchange exchange) throws Exception {
System.out.println("I'm running every 5 sec...");
Thread.sleep(5000);
System.out.println("Exiting iteration ");
}
Run Code Online (Sandbox Code Playgroud)
}
在这里,我希望“我每 5 秒运行一次...”和“退出迭代”每次都以相同的顺序打印。在某种程度上,我希望仅在当前执行完成后才能再次执行此 SchedulerService。