小编Dha*_*tel的帖子

Apache Camel 与 Quartz - 无并发执行

我想使用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。

java apache-camel quartz-scheduler apache-servicemix

4
推荐指数
1
解决办法
3674
查看次数