|
@@ -60,29 +60,17 @@ public class TaskUtil {
|
|
|
trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
|
trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
|
|
// 判断触发器是否存在(如果存在说明之前运行过但是在当前被禁用了,如果不存在说明一次都没运行过)
|
|
// 判断触发器是否存在(如果存在说明之前运行过但是在当前被禁用了,如果不存在说明一次都没运行过)
|
|
|
if (trigger == null) {
|
|
if (trigger == null) {
|
|
|
- log.info("不存在,新增定时任务:" + sysjob.getJobName());
|
|
|
|
|
- // 新建一个工作任务 指定任务类型为串接进行的
|
|
|
|
|
JobDetail jobDetail = JobBuilder.newJob(QuartzFactory.class).withIdentity(jobKey).build();
|
|
JobDetail jobDetail = JobBuilder.newJob(QuartzFactory.class).withIdentity(jobKey).build();
|
|
|
- // 将任务信息添加到任务信息中
|
|
|
|
|
jobDetail.getJobDataMap().put(SCHEDULE_JOB_KEY.getType(), sysjob);
|
|
jobDetail.getJobDataMap().put(SCHEDULE_JOB_KEY.getType(), sysjob);
|
|
|
- // 将cron表达式进行转换
|
|
|
|
|
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(sysjob.getCronExpression());
|
|
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(sysjob.getCronExpression());
|
|
|
cronScheduleBuilder = this.handleCronScheduleMisfirePolicy(sysjob, cronScheduleBuilder);
|
|
cronScheduleBuilder = this.handleCronScheduleMisfirePolicy(sysjob, cronScheduleBuilder);
|
|
|
- // 创建触发器并将cron表达式对象给塞入
|
|
|
|
|
- trigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder)
|
|
|
|
|
- .build();
|
|
|
|
|
- // 在调度器中将触发器和任务进行组合
|
|
|
|
|
|
|
+ trigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
|
|
|
scheduler.scheduleJob(jobDetail, trigger);
|
|
scheduler.scheduleJob(jobDetail, trigger);
|
|
|
} else {
|
|
} else {
|
|
|
- log.info("已经存在的定时任务:" + sysjob.getJobName());
|
|
|
|
|
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(sysjob.getCronExpression());
|
|
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(sysjob.getCronExpression());
|
|
|
cronScheduleBuilder = this.handleCronScheduleMisfirePolicy(sysjob, cronScheduleBuilder);
|
|
cronScheduleBuilder = this.handleCronScheduleMisfirePolicy(sysjob, cronScheduleBuilder);
|
|
|
- // 按照新的规则进行
|
|
|
|
|
- trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(cronScheduleBuilder)
|
|
|
|
|
- .build();
|
|
|
|
|
- // 将任务信息更新到任务信息中
|
|
|
|
|
|
|
+ trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
|
|
|
trigger.getJobDataMap().put(SCHEDULE_JOB_KEY.getType(), sysjob);
|
|
trigger.getJobDataMap().put(SCHEDULE_JOB_KEY.getType(), sysjob);
|
|
|
- // 重启
|
|
|
|
|
scheduler.rescheduleJob(triggerKey, trigger);
|
|
scheduler.rescheduleJob(triggerKey, trigger);
|
|
|
}
|
|
}
|
|
|
// 如任务状态为暂停
|
|
// 如任务状态为暂停
|