Bladeren bron

调度中心与执行器双向通讯超时时间调整为3s

xuxueli 6 jaren geleden
bovenliggende
commit
998da25c4a

+ 3 - 2
doc/XXL-JOB官方文档.md Bestand weergeven

853
 任务调度错过触发时间时的处理策略:
853
 任务调度错过触发时间时的处理策略:
854
 - 可能原因:服务重启;调度线程被阻塞,线程被耗尽;上次调度持续阻塞,下次调度被错过;
854
 - 可能原因:服务重启;调度线程被阻塞,线程被耗尽;上次调度持续阻塞,下次调度被错过;
855
 - 处理策略:
855
 - 处理策略:
856
-    - 过期超10s:本地忽略,当前时间开始计算下次触发时间
857
-    - 过期超过5s:过期10s内:立即触发一次,当前时间开始计算下次触发时间
856
+    - 过期超5s:本地忽略,当前时间开始计算下次触发时间
857
+    - 过期超过5s:过期5s内:立即触发一次,当前时间开始计算下次触发时间
858
 
858
 
859
 
859
 
860
 #### 5.4.7 日志回调服务
860
 #### 5.4.7 日志回调服务
1476
 - 10、项目依赖升级至较新稳定版本,如spring、springboot、groovy、xxl-rpc等等;并清理冗余POM;
1476
 - 10、项目依赖升级至较新稳定版本,如spring、springboot、groovy、xxl-rpc等等;并清理冗余POM;
1477
 - 11、升级xxl-rpc至较新版本,修复代理服务初始化时远程服务不可用导致长连冗余创建的问题;
1477
 - 11、升级xxl-rpc至较新版本,修复代理服务初始化时远程服务不可用导致长连冗余创建的问题;
1478
 - 12、首页调度报表的日期排序在TIDB下乱序问题修复;
1478
 - 12、首页调度报表的日期排序在TIDB下乱序问题修复;
1479
+- 13、调度中心与执行器双向通讯超时时间调整为3s;
1479
 
1480
 
1480
 
1481
 
1481
 ### 6.26 版本 v2.1.1 Release Notes[规划中]
1482
 ### 6.26 版本 v2.1.1 Release Notes[规划中]

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobScheduler.java Bestand weergeven

134
                 LoadBalance.ROUND,
134
                 LoadBalance.ROUND,
135
                 ExecutorBiz.class,
135
                 ExecutorBiz.class,
136
                 null,
136
                 null,
137
-                5000,
137
+                3000,
138
                 address,
138
                 address,
139
                 XxlJobAdminConfig.getAdminConfig().getAccessToken(),
139
                 XxlJobAdminConfig.getAdminConfig().getAccessToken(),
140
                 null,
140
                 null,

+ 4 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java Bestand weergeven

63
 
63
 
64
                         // tx start
64
                         // tx start
65
 
65
 
66
-                        // 1、预读10s内调度任务
67
-                        long maxNextTime = System.currentTimeMillis() + 10000;
66
+                        // 1、预读5s内调度任务
67
+                        long maxNextTime = System.currentTimeMillis() + 5000;
68
                         long nowTime = System.currentTimeMillis();
68
                         long nowTime = System.currentTimeMillis();
69
                         List<XxlJobInfo> scheduleList = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleJobQuery(maxNextTime);
69
                         List<XxlJobInfo> scheduleList = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleJobQuery(maxNextTime);
70
                         if (scheduleList!=null && scheduleList.size()>0) {
70
                         if (scheduleList!=null && scheduleList.size()>0) {
73
 
73
 
74
                                 // 时间轮刻度计算
74
                                 // 时间轮刻度计算
75
                                 int ringSecond = -1;
75
                                 int ringSecond = -1;
76
-                                if (jobInfo.getTriggerNextTime() < nowTime - 10000) {   // 过期超10s:本地忽略,当前时间开始计算下次触发时间
76
+                                if (jobInfo.getTriggerNextTime() < nowTime - 5000) {   // 过期超5s:本地忽略,当前时间开始计算下次触发时间
77
                                     ringSecond = -1;
77
                                     ringSecond = -1;
78
 
78
 
79
                                     jobInfo.setTriggerLastTime(jobInfo.getTriggerNextTime());
79
                                     jobInfo.setTriggerLastTime(jobInfo.getTriggerNextTime());
82
                                                     .getNextValidTimeAfter(new Date())
82
                                                     .getNextValidTimeAfter(new Date())
83
                                                     .getTime()
83
                                                     .getTime()
84
                                     );
84
                                     );
85
-                                } else if (jobInfo.getTriggerNextTime() < nowTime) {    // 过期10s内:立即触发一次,当前时间开始计算下次触发时间
85
+                                } else if (jobInfo.getTriggerNextTime() < nowTime) {    // 过期5s内:立即触发一次,当前时间开始计算下次触发时间
86
                                     ringSecond = (int)((nowTime/1000)%60);
86
                                     ringSecond = (int)((nowTime/1000)%60);
87
 
87
 
88
                                     jobInfo.setTriggerLastTime(jobInfo.getTriggerNextTime());
88
                                     jobInfo.setTriggerLastTime(jobInfo.getTriggerNextTime());

+ 4 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java Bestand weergeven

189
 			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_id")+I18nUtil.getString("system_not_found")) );
189
 			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_id")+I18nUtil.getString("system_not_found")) );
190
 		}
190
 		}
191
 
191
 
192
-		// next trigger time (10s后生效,避开预读周期)
192
+		// next trigger time (5s后生效,避开预读周期)
193
 		long nextTriggerTime = exists_jobInfo.getTriggerNextTime();
193
 		long nextTriggerTime = exists_jobInfo.getTriggerNextTime();
194
 		if (exists_jobInfo.getTriggerStatus() == 1 && !jobInfo.getJobCron().equals(exists_jobInfo.getJobCron()) ) {
194
 		if (exists_jobInfo.getTriggerStatus() == 1 && !jobInfo.getJobCron().equals(exists_jobInfo.getJobCron()) ) {
195
 			try {
195
 			try {
196
-				nextTriggerTime = new CronExpression(jobInfo.getJobCron()).getNextValidTimeAfter(new Date(System.currentTimeMillis() + 10000)).getTime();
196
+				nextTriggerTime = new CronExpression(jobInfo.getJobCron()).getNextValidTimeAfter(new Date(System.currentTimeMillis() + 5000)).getTime();
197
 			} catch (ParseException e) {
197
 			} catch (ParseException e) {
198
 				logger.error(e.getMessage(), e);
198
 				logger.error(e.getMessage(), e);
199
 				return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")+" | "+ e.getMessage());
199
 				return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")+" | "+ e.getMessage());
236
 	public ReturnT<String> start(int id) {
236
 	public ReturnT<String> start(int id) {
237
 		XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id);
237
 		XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id);
238
 
238
 
239
-		// next trigger time (10s后生效,避开预读周期)
239
+		// next trigger time (5s后生效,避开预读周期)
240
 		long nextTriggerTime = 0;
240
 		long nextTriggerTime = 0;
241
 		try {
241
 		try {
242
-			nextTriggerTime = new CronExpression(xxlJobInfo.getJobCron()).getNextValidTimeAfter(new Date(System.currentTimeMillis() + 10000)).getTime();
242
+			nextTriggerTime = new CronExpression(xxlJobInfo.getJobCron()).getNextValidTimeAfter(new Date(System.currentTimeMillis() + 5000)).getTime();
243
 		} catch (ParseException e) {
243
 		} catch (ParseException e) {
244
 			logger.error(e.getMessage(), e);
244
 			logger.error(e.getMessage(), e);
245
 			return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")+" | "+ e.getMessage());
245
 			return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")+" | "+ e.getMessage());

+ 2 - 2
xxl-job-admin/src/test/java/com/xxl/job/adminbiz/AdminBizTest.java Bestand weergeven

39
                 LoadBalance.ROUND,
39
                 LoadBalance.ROUND,
40
                 AdminBiz.class,
40
                 AdminBiz.class,
41
                 null,
41
                 null,
42
-                10000,
42
+                3000,
43
                 addressUrl,
43
                 addressUrl,
44
                 accessToken,
44
                 accessToken,
45
                 null,
45
                 null,
69
                 LoadBalance.ROUND,
69
                 LoadBalance.ROUND,
70
                 AdminBiz.class,
70
                 AdminBiz.class,
71
                 null,
71
                 null,
72
-                10000,
72
+                3000,
73
                 addressUrl,
73
                 addressUrl,
74
                 accessToken,
74
                 accessToken,
75
                 null,
75
                 null,

+ 1 - 1
xxl-job-admin/src/test/java/com/xxl/job/executor/ExecutorBizTest.java Bestand weergeven

56
                 LoadBalance.ROUND,
56
                 LoadBalance.ROUND,
57
                 ExecutorBiz.class,
57
                 ExecutorBiz.class,
58
                 null,
58
                 null,
59
-                10000,
59
+                3000,
60
                 "127.0.0.1:9999",
60
                 "127.0.0.1:9999",
61
                 null,
61
                 null,
62
                 null,
62
                 null,

+ 1 - 1
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java Bestand weergeven

127
                             LoadBalance.ROUND,
127
                             LoadBalance.ROUND,
128
                             AdminBiz.class,
128
                             AdminBiz.class,
129
                             null,
129
                             null,
130
-                            10000,
130
+                            3000,
131
                             addressUrl,
131
                             addressUrl,
132
                             accessToken,
132
                             accessToken,
133
                             null,
133
                             null,