Browse Source

任务触发组件优化,预加载频率正常1s一次,当预加载轮空时主动休眠一个加载周期,动态降低加载频率从而降低DB压力;

xuxueli 6 years ago
parent
commit
4dd19ac518

+ 1 - 1
doc/XXL-JOB官方文档.md

@@ -1517,7 +1517,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
 - 6、登录界面取消默认填写的登录账号密码;
 - 7、[ING]cron在线生成工具;
 - 8、[ING]任务、执行器数据全量本地缓存;新增消息表广播通知;
-- 9、任务触发组件优化,常规1s预加载一次,预加载轮空时主动休眠4s,降低加载频率以及对DB压力;
+- 9、任务触发组件优化,预加载频率正常1s一次,当预加载轮空时主动休眠一个加载周期,动态降低加载频率从而降低DB压力;
 - 10、注册监控线程优化,降低死锁几率;
 - 11、调度组件优化:针对永远不会触发的Cron禁止配置和启动;任务Cron最后一次触发后再也不会触发时,比如一次性任务,主动停止相关任务;
 - 12、任务列表交互优化,支持查看任务所属执行器的注册节点;

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java

@@ -194,9 +194,8 @@ public class JobScheduleHelper {
                     // Wait seconds, align second
                     if (cost < 1000) {  // scan-overtime, not wait
                         try {
-                            // pre-read success, exist job in pre-read period, wait 1s;
-                            // pre-read fail, no exist job in pre-read period, wait 4s
-                            TimeUnit.MILLISECONDS.sleep((preReadSuc?1000:4000) - System.currentTimeMillis()%1000);
+                            // pre-read period: success > scan each second; fail > skip this period;
+                            TimeUnit.MILLISECONDS.sleep((preReadSuc?1000:PRE_READ_MS) - System.currentTimeMillis()%1000);
                         } catch (InterruptedException e) {
                             if (!scheduleThreadToStop) {
                                 logger.error(e.getMessage(), e);

+ 1 - 1
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml

@@ -212,7 +212,7 @@
 		SELECT <include refid="Base_Column_List" />
 		FROM xxl_job_info AS t
 		WHERE t.trigger_status = 1
-			and t.trigger_next_time<![CDATA[ < ]]> #{maxNextTime}
+			and t.trigger_next_time<![CDATA[ <= ]]> #{maxNextTime}
 	</select>
 
 	<update id="scheduleUpdate" parameterType="com.xxl.job.admin.core.model.XxlJobInfo"  >