|
@@ -67,16 +67,16 @@ public class JobScheduleHelper {
|
67
|
67
|
|
68
|
68
|
// tx start
|
69
|
69
|
|
70
|
|
- // 1、预读5s内调度任务
|
|
70
|
+ // 1、pre read
|
71
|
71
|
long nowTime = System.currentTimeMillis();
|
72
|
72
|
List<XxlJobInfo> scheduleList = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleJobQuery(nowTime + PRE_READ_MS);
|
73
|
73
|
if (scheduleList!=null && scheduleList.size()>0) {
|
74
|
|
- // 2、推送时间轮
|
|
74
|
+ // 2、push time-ring
|
75
|
75
|
for (XxlJobInfo jobInfo: scheduleList) {
|
76
|
76
|
|
77
|
|
- // 时间轮刻度计算
|
|
77
|
+ // time-ring jump
|
78
|
78
|
if (nowTime > jobInfo.getTriggerNextTime() + PRE_READ_MS) {
|
79
|
|
- // 过期超5s:本地忽略,当前时间开始计算下次触发时间
|
|
79
|
+ // 2.1、trigger-expire > 5s:pass && make next-trigger-time
|
80
|
80
|
|
81
|
81
|
// fresh next
|
82
|
82
|
Date nextValidTime = new CronExpression(jobInfo.getJobCron()).getNextValidTimeAfter(new Date());
|
|
@@ -90,7 +90,7 @@ public class JobScheduleHelper {
|
90
|
90
|
}
|
91
|
91
|
|
92
|
92
|
} else if (nowTime > jobInfo.getTriggerNextTime()) {
|
93
|
|
- // 过期5s内 :立即触发一次,当前时间开始计算下次触发时间;
|
|
93
|
+ // 2.2、trigger-expire < 5s:direct-trigger && make next-trigger-time
|
94
|
94
|
|
95
|
95
|
CronExpression cronExpression = new CronExpression(jobInfo.getJobCron());
|
96
|
96
|
long nextTime = cronExpression.getNextValidTimeAfter(new Date()).getTime();
|
|
@@ -104,7 +104,7 @@ public class JobScheduleHelper {
|
104
|
104
|
jobInfo.setTriggerNextTime(nextTime);
|
105
|
105
|
|
106
|
106
|
|
107
|
|
- // 下次5s内:预读一次;
|
|
107
|
+ // next-trigger-time in 5s, pre-read again
|
108
|
108
|
if (jobInfo.getTriggerNextTime() - nowTime < PRE_READ_MS) {
|
109
|
109
|
|
110
|
110
|
// 1、make ring second
|
|
@@ -127,7 +127,7 @@ public class JobScheduleHelper {
|
127
|
127
|
}
|
128
|
128
|
|
129
|
129
|
} else {
|
130
|
|
- // 未过期:正常触发,递增计算下次触发时间
|
|
130
|
+ // 2.3、trigger-pre-read:time-ring trigger && make next-trigger-time
|
131
|
131
|
|
132
|
132
|
// 1、make ring second
|
133
|
133
|
int ringSecond = (int)((jobInfo.getTriggerNextTime()/1000)%60);
|
|
@@ -150,7 +150,7 @@ public class JobScheduleHelper {
|
150
|
150
|
|
151
|
151
|
}
|
152
|
152
|
|
153
|
|
- // 3、更新trigger信息
|
|
153
|
+ // 3、update trigger info
|
154
|
154
|
for (XxlJobInfo jobInfo: scheduleList) {
|
155
|
155
|
XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleUpdate(jobInfo);
|
156
|
156
|
}
|