关于quartz任务调度问题,若一个任务在下一个任务触发前,还未执行完.

比如,我定义了一个任务,每15秒执行一次.但是该任务15秒后,依然未执行,这时候,quartz就会开辟一个新的任务,再次去执行这个任务.有没有一种调度方式是,该任务执行完后,再执行的呢.

阅读 18.9k
3 个回答

如果只是简单的定时任务,完全可以不用quartz,使用jdk自带的ScheduledExecutorService,里面有scheduleAtFixedRate(Runnable, long, long, TimeUnit) 方法(你现在用的)和scheduleWithFixedDelay(Runnable, long, long, TimeUnit)方法 (你需要的)

如果是Java的话,ScheduledExecutorService可以满足要求。
你用C#的话,不知道有没有类似的库可以实现,不过实在没找到的话,可以给任务加锁,只允许一个任务执行,执行完毕后释放锁。

StatueFulJob

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进