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 75c3f4d..fdd1f6a 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 @@
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 @@
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/java/com/xxl/job/core/util/DynamicSchedulerUtil.java b/xxl-job-admin/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java
index 75c3f4d..fdd1f6a 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 @@
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 @@
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 58e268f..edc5223 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-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 75c3f4d..fdd1f6a 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 @@
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 @@
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 58e268f..edc5223 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 5345578..77aa8a2 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 @@
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 @@
* 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 @@
}
}
+ try {
+ TimeUnit.SECONDS.sleep(5);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
logger.info(">>>>>>>>>>> xxl-job run :jobId:{}, group:{}, jobDataMap:{}",
new Object[]{triggerKey, triggerGroup, jobDataMap});
}