diff --git a/xxl-job-admin/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java b/xxl-job-admin/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java index 75c3f4d9..fdd1f6a4 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java @@ -104,8 +104,8 @@ public final class DynamicSchedulerUtil implements InitializingBean { return false; } - // CronTrigger : TriggerKey + cronExpression - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression); + // CronTrigger : TriggerKey + cronExpression // withMisfireHandlingInstructionDoNothing 忽略掉调度终止过程中忽略的调度 + CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing(); CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build(); // JobDetail : jobClass @@ -131,7 +131,7 @@ public final class DynamicSchedulerUtil implements InitializingBean { boolean result = false; if (scheduler.checkExists(triggerKey)) { // CronTrigger : TriggerKey + cronExpression - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression); + CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing(); CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build(); Date date = scheduler.rescheduleJob(triggerKey, cronTrigger); diff --git a/xxl-job-admin/src/main/resources/applicationcontext-trigger-db.xml b/xxl-job-admin/src/main/resources/applicationcontext-trigger-db.xml index 58e268f7..edc52237 100644 --- a/xxl-job-admin/src/main/resources/applicationcontext-trigger-db.xml +++ b/xxl-job-admin/src/main/resources/applicationcontext-trigger-db.xml @@ -11,7 +11,8 @@ - + + diff --git a/xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBean.java b/xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBean.java index 5345578a..77aa8a2a 100644 --- a/xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBean.java +++ b/xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBean.java @@ -3,7 +3,9 @@ package com.xxl.job.service.job; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; +import java.util.concurrent.TimeUnit; +import org.quartz.DisallowConcurrentExecution; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.slf4j.Logger; @@ -14,6 +16,8 @@ import org.springframework.scheduling.quartz.QuartzJobBean; * http job bean * @author xuxueli 2015-12-17 18:20:34 */ + +@DisallowConcurrentExecution // 取消并发执行;线程数要多配置几个,否则不生效; public class DemoJobBean extends QuartzJobBean { private static Logger logger = LoggerFactory.getLogger(DemoJobBean.class); @@ -33,6 +37,12 @@ public class DemoJobBean extends QuartzJobBean { } } + try { + TimeUnit.SECONDS.sleep(5); + } catch (InterruptedException e) { + e.printStackTrace(); + } + logger.info(">>>>>>>>>>> xxl-job run :jobId:{}, group:{}, jobDataMap:{}", new Object[]{triggerKey, triggerGroup, jobDataMap}); }