我正在使用Sling的调度程序安排定期工作,我想知道我是否安排工作A每5分钟运行一次。在不太可能的情况下,工作开始运行并花了超过5分钟会发生什么?我已指定作业无法并行运行。
在幕后,Sling的调度程序正在使用QuartzScheduler,所以如果你知道QuartzScheduler在这种情况下的表现,请分享你的知识。
非常感谢任何帮助!
答案 0 :(得分:1)
在Quartz Scheduler 2.1.x中,annotation DisallowConcurrentExecution用于防止同时执行同一个Job。
在Quartz Scheduler 2.0.x中,为了使Job的并发执行无效,您必须实现StatefulJob interface。
关于在上一个作业完成时是否会执行失火执行的决定或将被忽略的决定取决于触发器的失火政策。默认情况下,当调度程序启动时,它会搜索任何已失实的持久触发器,然后根据其单独配置的失火指令更新每个触发器。
所以在我看来,Job A会在上一次运行结束后立即再次运行。我想Sling使用默认的失火策略。否则答案取决于失火政策的选择。
这就是Quartz Scheduler的工作原理。我不知道Sling的调度程序是如何工作的。
我希望这会有所帮助。