浏览代码

update document

xuxueli 6 年前
父节点
当前提交
3d951f2bc6
共有 1 个文件被更改,包括 11 次插入8 次删除
  1. 11 8
      xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java

+ 11 - 8
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java 查看文件

67
                         // tx start
67
                         // tx start
68
 
68
 
69
                         // 1、预读5s内调度任务
69
                         // 1、预读5s内调度任务
70
-                        List<XxlJobInfo> scheduleList = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleJobQuery(System.currentTimeMillis() + PRE_READ_MS);
70
+                        long nowTime = System.currentTimeMillis();
71
+                        List<XxlJobInfo> scheduleList = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleJobQuery(nowTime + PRE_READ_MS);
71
                         if (scheduleList!=null && scheduleList.size()>0) {
72
                         if (scheduleList!=null && scheduleList.size()>0) {
72
                             // 2、推送时间轮
73
                             // 2、推送时间轮
73
                             for (XxlJobInfo jobInfo: scheduleList) {
74
                             for (XxlJobInfo jobInfo: scheduleList) {
74
 
75
 
75
                                 // 时间轮刻度计算
76
                                 // 时间轮刻度计算
76
-                                if (System.currentTimeMillis() > jobInfo.getTriggerNextTime() + PRE_READ_MS) {
77
+                                if (nowTime > jobInfo.getTriggerNextTime() + PRE_READ_MS) {
77
                                     // 过期超5s:本地忽略,当前时间开始计算下次触发时间
78
                                     // 过期超5s:本地忽略,当前时间开始计算下次触发时间
78
 
79
 
79
                                     // fresh next
80
                                     // fresh next
84
                                                     .getTime()
85
                                                     .getTime()
85
                                     );
86
                                     );
86
 
87
 
87
-                                } else if (System.currentTimeMillis() > jobInfo.getTriggerNextTime()) {
88
-                                    // 过期5s内 :立即触发一次,当前时间开始计算下次触发时间;一旦过期,预读一次;
88
+                                } else if (nowTime > jobInfo.getTriggerNextTime()) {
89
+                                    // 过期5s内 :立即触发一次,当前时间开始计算下次触发时间;
89
 
90
 
90
                                     CronExpression cronExpression = new CronExpression(jobInfo.getJobCron());
91
                                     CronExpression cronExpression = new CronExpression(jobInfo.getJobCron());
91
                                     long nextTime = cronExpression.getNextValidTimeAfter(new Date()).getTime();
92
                                     long nextTime = cronExpression.getNextValidTimeAfter(new Date()).getTime();
92
 
93
 
93
                                     // 1、trigger
94
                                     // 1、trigger
94
                                     JobTriggerPoolHelper.trigger(jobInfo.getId(), TriggerTypeEnum.CRON, -1, null, null);
95
                                     JobTriggerPoolHelper.trigger(jobInfo.getId(), TriggerTypeEnum.CRON, -1, null, null);
96
+                                    logger.debug(">>>>>>>>>>> xxl-job, shecule push trigger : jobId = " + jobInfo.getId() );
95
 
97
 
96
                                     // 2、fresh next
98
                                     // 2、fresh next
97
                                     jobInfo.setTriggerLastTime(jobInfo.getTriggerNextTime());
99
                                     jobInfo.setTriggerLastTime(jobInfo.getTriggerNextTime());
98
                                     jobInfo.setTriggerNextTime(nextTime);
100
                                     jobInfo.setTriggerNextTime(nextTime);
99
 
101
 
100
-                                    // 3、check pre read
101
-                                    if (jobInfo.getTriggerNextTime() - System.currentTimeMillis() < PRE_READ_MS) {
102
+
103
+                                    // 下次5s内:预读一次;
104
+                                    if (jobInfo.getTriggerNextTime() - nowTime < PRE_READ_MS) {
102
 
105
 
103
                                         // 1、make ring second
106
                                         // 1、make ring second
104
                                         int ringSecond = (int)((jobInfo.getTriggerNextTime()/1000)%60);
107
                                         int ringSecond = (int)((jobInfo.getTriggerNextTime()/1000)%60);
116
 
119
 
117
                                     }
120
                                     }
118
 
121
 
119
-                                    logger.debug(">>>>>>>>>>> xxl-job, push trigger : jobId = " + jobInfo.getId() );
120
                                 } else {
122
                                 } else {
121
                                     // 未过期:正常触发,递增计算下次触发时间
123
                                     // 未过期:正常触发,递增计算下次触发时间
122
 
124
 
133
                                                     .getNextValidTimeAfter(new Date(jobInfo.getTriggerNextTime()))
135
                                                     .getNextValidTimeAfter(new Date(jobInfo.getTriggerNextTime()))
134
                                                     .getTime()
136
                                                     .getTime()
135
                                     );
137
                                     );
138
+
136
                                 }
139
                                 }
137
 
140
 
138
                             }
141
                             }
257
         }
260
         }
258
         ringItemData.add(jobId);
261
         ringItemData.add(jobId);
259
 
262
 
260
-        logger.debug(">>>>>>>>>>> xxl-job, push time-ring : " + ringSecond + " = " + Arrays.asList(ringItemData) );
263
+        logger.debug(">>>>>>>>>>> xxl-job, shecule push time-ring : " + ringSecond + " = " + Arrays.asList(ringItemData) );
261
     }
264
     }
262
 
265
 
263
     public void toStop(){
266
     public void toStop(){