提交 3d951f2b authored 作者: xuxueli's avatar xuxueli

update document

上级 18162e75
...@@ -67,13 +67,14 @@ public class JobScheduleHelper { ...@@ -67,13 +67,14 @@ public class JobScheduleHelper {
// tx start // tx start
// 1、预读5s内调度任务 // 1、预读5s内调度任务
List<XxlJobInfo> scheduleList = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleJobQuery(System.currentTimeMillis() + PRE_READ_MS); long nowTime = System.currentTimeMillis();
List<XxlJobInfo> scheduleList = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleJobQuery(nowTime + PRE_READ_MS);
if (scheduleList!=null && scheduleList.size()>0) { if (scheduleList!=null && scheduleList.size()>0) {
// 2、推送时间轮 // 2、推送时间轮
for (XxlJobInfo jobInfo: scheduleList) { for (XxlJobInfo jobInfo: scheduleList) {
// 时间轮刻度计算 // 时间轮刻度计算
if (System.currentTimeMillis() > jobInfo.getTriggerNextTime() + PRE_READ_MS) { if (nowTime > jobInfo.getTriggerNextTime() + PRE_READ_MS) {
// 过期超5s:本地忽略,当前时间开始计算下次触发时间 // 过期超5s:本地忽略,当前时间开始计算下次触发时间
// fresh next // fresh next
...@@ -84,21 +85,23 @@ public class JobScheduleHelper { ...@@ -84,21 +85,23 @@ public class JobScheduleHelper {
.getTime() .getTime()
); );
} else if (System.currentTimeMillis() > jobInfo.getTriggerNextTime()) { } else if (nowTime > jobInfo.getTriggerNextTime()) {
// 过期5s内 :立即触发一次,当前时间开始计算下次触发时间;一旦过期,预读一次; // 过期5s内 :立即触发一次,当前时间开始计算下次触发时间;
CronExpression cronExpression = new CronExpression(jobInfo.getJobCron()); CronExpression cronExpression = new CronExpression(jobInfo.getJobCron());
long nextTime = cronExpression.getNextValidTimeAfter(new Date()).getTime(); long nextTime = cronExpression.getNextValidTimeAfter(new Date()).getTime();
// 1、trigger // 1、trigger
JobTriggerPoolHelper.trigger(jobInfo.getId(), TriggerTypeEnum.CRON, -1, null, null); JobTriggerPoolHelper.trigger(jobInfo.getId(), TriggerTypeEnum.CRON, -1, null, null);
logger.debug(">>>>>>>>>>> xxl-job, shecule push trigger : jobId = " + jobInfo.getId() );
// 2、fresh next // 2、fresh next
jobInfo.setTriggerLastTime(jobInfo.getTriggerNextTime()); jobInfo.setTriggerLastTime(jobInfo.getTriggerNextTime());
jobInfo.setTriggerNextTime(nextTime); jobInfo.setTriggerNextTime(nextTime);
// 3、check pre read
if (jobInfo.getTriggerNextTime() - System.currentTimeMillis() < PRE_READ_MS) { // 下次5s内:预读一次;
if (jobInfo.getTriggerNextTime() - nowTime < PRE_READ_MS) {
// 1、make ring second // 1、make ring second
int ringSecond = (int)((jobInfo.getTriggerNextTime()/1000)%60); int ringSecond = (int)((jobInfo.getTriggerNextTime()/1000)%60);
...@@ -116,7 +119,6 @@ public class JobScheduleHelper { ...@@ -116,7 +119,6 @@ public class JobScheduleHelper {
} }
logger.debug(">>>>>>>>>>> xxl-job, push trigger : jobId = " + jobInfo.getId() );
} else { } else {
// 未过期:正常触发,递增计算下次触发时间 // 未过期:正常触发,递增计算下次触发时间
...@@ -133,6 +135,7 @@ public class JobScheduleHelper { ...@@ -133,6 +135,7 @@ public class JobScheduleHelper {
.getNextValidTimeAfter(new Date(jobInfo.getTriggerNextTime())) .getNextValidTimeAfter(new Date(jobInfo.getTriggerNextTime()))
.getTime() .getTime()
); );
} }
} }
...@@ -257,7 +260,7 @@ public class JobScheduleHelper { ...@@ -257,7 +260,7 @@ public class JobScheduleHelper {
} }
ringItemData.add(jobId); ringItemData.add(jobId);
logger.debug(">>>>>>>>>>> xxl-job, push time-ring : " + ringSecond + " = " + Arrays.asList(ringItemData) ); logger.debug(">>>>>>>>>>> xxl-job, shecule push time-ring : " + ringSecond + " = " + Arrays.asList(ringItemData) );
} }
public void toStop(){ public void toStop(){
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论