【问题标题】:How to set new job each time with different interval如何每次以不同的间隔设置新作业
【发布时间】:2015-07-08 15:37:47
【问题描述】:

我是 Quartz 的新手,我遇到了以下要求:

我需要创建一个调度器来调度单个作业,每次它结束时都会重新调度并计算出间隔时间。

例如: 1.开始工作15分钟后结束,完成后重新安排在1小时后结束,完成后重新安排在45分钟后结束......等等......

关键是当作业完成时,我会动态计算下一个时间间隔并需要再次触发事件。

如何使用 Quartz 实现这一点?

谢谢。

【问题讨论】:

  • “完成后将其重新安排在 1 小时后结束” - 您的意思是“结束后”还是“开始后”?
  • 你问的是递归调度吗?即您的作业是否可以在执行的最后一步中安排自己在 1 小时左右执行。
  • 它应该在动态间隔结束时重新安排自己。

标签: java quartz-scheduler


【解决方案1】:

前提是您可以首次显式触发它,例如

scheduler.addJob(jobDetail, true);
scheduler.triggerJob(jobName, groupName); //(1)

并对作业类进行编码,使其主要工作完成后,计算下一个触发时间并在作业退出之前安排它。类似的东西

scheduler.scheduleJob(jobDetail, trigger); //(2)

请注意,代码 sn-p (1) 中的作业触发器会在作业完成后移除作业。这意味着您必须在 (2) 中对其进行调度,就调度程序而言,就好像它是一项新工作。

【讨论】:

  • 有道理...我会试试看 - 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-04
  • 2016-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多