记录job执行状态
需要记录定时任务每一次的执行情况,并记录执行的次数。因为quartz在1.x版本之后不推荐使用stateful接口,我需要共享job的状态的信息,在查阅相关资料之后,发现可以使用quartz监听器完成这个功能。
关于quartz的监听器介绍,可以参考博客:
https://blog.csdn.net/little__SuperMan/article/details/88987578?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param
记录执行次数
public class TimerJobListener implements Joblistener{
int i=0; //设置执行次数
@override
public String getName(){
//代码块
}
@override
public void jobToBeExecuted(JobExcetutionContext jobExecutionContext){
//代码块,监听任务执行前的状态
}
@override
public void jobWasExecuted(JobExecutionContext jobExecutionContext,JobExecution e){
//代码块,监听任务执行后的状态
i++;
System.out.println("执行次数"+i);
}
}
##更新
监听器由于系统重启之后会失效,推荐直接在job类的execute方法里面 进行计数器的设置。通过添加任务的时候通过jobDataMap拆入times =0;在execute方法内去除times+1,然后在jobDataMap.put(“times”, times+1)的方法。
注意需要在job类上添加@persistJobDataAfterExecution.