建议实现保持状态的Quartz作业的方法

时间:2014-06-16 11:10:57

标签: java quartz-scheduler

我需要实现一个Quartz作业,它的行为会有所不同,具体取决于它的运行次数。

你认为最好的(或至少是好的)方式是什么?

将计数器保持为状态似乎不起作用,因为看起来Quartz每次都会重新创建它的作业。

感谢。

1 个答案:

答案 0 :(得分:2)

这就是Quartz PersistJobDataAfterExecution注释允许您轻松实现而无需使用任何额外的框架/逻辑。

来自PersistJobDataAfterExecution(Quartz 2.2.0)javadoc:

  

将Job类标记为对其进行更新的注释的注释   JobDataMap在执行期间,并希望调度程序重新存储   执行完成时的JobDataMap。

因此,当您的工作开始时,您只需从JobDataMap中读取作业执行计数器,该计数器将传递给作业的execute方法。如果JobDataMap中不存在计数器,则将其初始化为0.在作业执行结束时,您将在JobDataMap中递增计数器。这个更新的计数器值将在下一个作业执行期间可用。