Преглед на файлове

1、调度重启后,取消补偿遗失调度;

xueli.xue преди 10 години
родител
ревизия
51bfaa4131

+ 3 - 3
xxl-job-admin/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java Целия файл

@@ -104,8 +104,8 @@ public final class DynamicSchedulerUtil implements InitializingBean {
104 104
             return false;
105 105
         }
106 106
         
107
-        // CronTrigger : TriggerKey + cronExpression
108
-        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression);
107
+        // CronTrigger : TriggerKey + cronExpression	// withMisfireHandlingInstructionDoNothing 忽略掉调度终止过程中忽略的调度
108
+        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing();
109 109
         CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
110 110
 
111 111
         // JobDetail : jobClass
@@ -131,7 +131,7 @@ public final class DynamicSchedulerUtil implements InitializingBean {
131 131
         boolean result = false;
132 132
         if (scheduler.checkExists(triggerKey)) {
133 133
             // CronTrigger : TriggerKey + cronExpression
134
-            CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression);
134
+            CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing();
135 135
             CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
136 136
             
137 137
             Date date = scheduler.rescheduleJob(triggerKey, cronTrigger);

+ 2 - 1
xxl-job-admin/src/main/resources/applicationcontext-trigger-db.xml Целия файл

@@ -11,7 +11,8 @@
11 11
 
12 12
 	<bean id="quartzScheduler" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
13 13
 		<property name="dataSource" ref="dataSource" />
14
-        <property name="autoStartup" value="true" />
14
+        <property name="autoStartup" value="true" />	<!--自动启动 -->
15
+        <property name="startupDelay" value="20" />		<!--延时启动 -->
15 16
 		<property name="applicationContextSchedulerContextKey"  value="applicationContextKey" /> 
16 17
         <property name="configLocation" value="classpath:quartz.properties"/>
17 18
 	</bean>

+ 10 - 0
xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBean.java Целия файл

@@ -3,7 +3,9 @@ package com.xxl.job.service.job;
3 3
 import java.util.HashMap;
4 4
 import java.util.Map;
5 5
 import java.util.Map.Entry;
6
+import java.util.concurrent.TimeUnit;
6 7
 
8
+import org.quartz.DisallowConcurrentExecution;
7 9
 import org.quartz.JobExecutionContext;
8 10
 import org.quartz.JobExecutionException;
9 11
 import org.slf4j.Logger;
@@ -14,6 +16,8 @@ import org.springframework.scheduling.quartz.QuartzJobBean;
14 16
  * http job bean
15 17
  * @author xuxueli 2015-12-17 18:20:34
16 18
  */
19
+
20
+@DisallowConcurrentExecution	// 取消并发执行;线程数要多配置几个,否则不生效;
17 21
 public class DemoJobBean extends QuartzJobBean {
18 22
 	private static Logger logger = LoggerFactory.getLogger(DemoJobBean.class);
19 23
 
@@ -33,6 +37,12 @@ public class DemoJobBean extends QuartzJobBean {
33 37
 			}
34 38
 		}
35 39
 		
40
+		try {
41
+			TimeUnit.SECONDS.sleep(5);
42
+		} catch (InterruptedException e) {
43
+			e.printStackTrace();
44
+		}
45
+		
36 46
 		logger.info(">>>>>>>>>>> xxl-job run :jobId:{}, group:{}, jobDataMap:{}", 
37 47
 				new Object[]{triggerKey, triggerGroup, jobDataMap});
38 48
     }