فهرست منبع

执行器注册表字段优化,解决执行器注册节点过多导致注册信息存储和更新失败的问题;

xueli.xue 4 سال پیش
والد
کامیت
cbcd6e1aed

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

@@ -2057,8 +2057,9 @@ data: post-data
 - 11、执行器示例项目规范整理;
 - 12、UI组件常规升级,提升组件稳定性;
 - 13、调度中心远程执行日志查询乱码问题修复;
-- 14、[规划中]任务触发参数优化:支持选择 "Cron触发"、"固定间隔时间触发"、"指定时间点触发"、"不选择" 等;
-- 15、[规划中]分片任务:全部完成后才会出发后置节点;
+- 14、执行器注册表字段优化,解决执行器注册节点过多导致注册信息存储和更新失败的问题;
+- 15、[规划中]任务触发参数优化:支持选择 "Cron触发"、"固定间隔时间触发"、"指定时间点触发"、"不选择" 等;
+- 16、[规划中]分片任务:全部完成后才会出发后置节点;
 
 ### 7.32 版本 v2.3.0 Release Notes[规划中]
 - 1、[规划中]DAG流程任务

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 4 - 2
doc/db/tables_xxl_job.sql


+ 6 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java

@@ -83,6 +83,9 @@ public class JobGroupController {
 			}
 		}
 
+		// process
+		xxlJobGroup.setUpdateTime(new Date());
+
 		int ret = xxlJobGroupDao.save(xxlJobGroup);
 		return (ret>0)?ReturnT.SUCCESS:ReturnT.FAIL;
 	}
@@ -126,6 +129,9 @@ public class JobGroupController {
 			}
 		}
 
+		// process
+		xxlJobGroup.setUpdateTime(new Date());
+
 		int ret = xxlJobGroupDao.update(xxlJobGroup);
 		return (ret>0)?ReturnT.SUCCESS:ReturnT.FAIL;
 	}

+ 10 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobGroup.java

@@ -2,6 +2,7 @@ package com.xxl.job.admin.core.model;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -14,6 +15,7 @@ public class XxlJobGroup {
     private String title;
     private int addressType;        // 执行器地址类型:0=自动注册、1=手动录入
     private String addressList;     // 执行器地址列表,多地址逗号分隔(手动录入)
+    private Date updateTime;
 
     // registry list
     private List<String> registryList;  // 执行器地址列表(系统注册)
@@ -60,6 +62,14 @@ public class XxlJobGroup {
         return addressList;
     }
 
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
     public void setAddressList(String addressList) {
         this.addressList = addressList;
     }

+ 2 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryMonitorHelper.java

@@ -74,6 +74,8 @@ public class JobRegistryMonitorHelper {
 									addressListStr = addressListStr.substring(0, addressListStr.length()-1);
 								}
 								group.setAddressList(addressListStr);
+								group.setUpdateTime(new Date());
+
 								XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().update(group);
 							}
 						}

+ 7 - 4
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml

@@ -9,6 +9,7 @@
 	    <result column="title" property="title" />
 		<result column="address_type" property="addressType" />
 		<result column="address_list" property="addressList" />
+		<result column="update_time" property="updateTime" />
 	</resultMap>
 
 	<sql id="Base_Column_List">
@@ -16,7 +17,8 @@
 		t.app_name,
 		t.title,
 		t.address_type,
-		t.address_list
+		t.address_list,
+		t.update_time
 	</sql>
 
 	<select id="findAll" resultMap="XxlJobGroup">
@@ -33,8 +35,8 @@
 	</select>
 
 	<insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobGroup" useGeneratedKeys="true" keyProperty="id" >
-		INSERT INTO xxl_job_group ( `app_name`, `title`, `address_type`, `address_list`)
-		values ( #{appname}, #{title}, #{addressType}, #{addressList});
+		INSERT INTO xxl_job_group ( `app_name`, `title`, `address_type`, `address_list`, `update_time`)
+		values ( #{appname}, #{title}, #{addressType}, #{addressList}, #{updateTime} );
 	</insert>
 
 	<update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobGroup" >
@@ -42,7 +44,8 @@
 		SET `app_name` = #{appname},
 			`title` = #{title},
 			`address_type` = #{addressType},
-			`address_list` = #{addressList}
+			`address_list` = #{addressList},
+			`update_time` = #{updateTime}
 		WHERE id = #{id}
 	</update>
 

+ 2 - 2
xxl-job-admin/src/main/resources/templates/jobgroup/jobgroup.index.ftl

@@ -98,7 +98,7 @@
                         <div class="form-group">
                             <label for="lastname" class="col-sm-2 control-label">${I18n.jobgroup_field_registryList}<font color="red">*</font></label>
                             <div class="col-sm-10">
-                                <textarea class="textarea" name="addressList" maxlength="512" placeholder="${I18n.jobgroup_field_registryList_placeholder}" readonly="readonly" style="background-color:#eee; width: 100%; height: 100px; font-size: 14px; line-height: 15px; border: 1px solid #dddddd; padding: 5px;"></textarea>
+                                <textarea class="textarea" name="addressList" maxlength="20000" placeholder="${I18n.jobgroup_field_registryList_placeholder}" readonly="readonly" style="background-color:#eee; width: 100%; height: 100px; font-size: 14px; line-height: 15px; border: 1px solid #dddddd; padding: 5px;"></textarea>
                             </div>
                         </div>
                         <hr>
@@ -142,7 +142,7 @@
                         <div class="form-group">
                             <label for="lastname" class="col-sm-2 control-label">${I18n.jobgroup_field_registryList}<font color="red">*</font></label>
                             <div class="col-sm-10">
-                                <textarea class="textarea" name="addressList" maxlength="512" placeholder="${I18n.jobgroup_field_registryList_placeholder}" readonly="readonly" style="background-color:#eee; width: 100%; height: 100px; font-size: 14px; line-height: 15px; border: 1px solid #dddddd; padding: 5px;"></textarea>
+                                <textarea class="textarea" name="addressList" maxlength="20000" placeholder="${I18n.jobgroup_field_registryList_placeholder}" readonly="readonly" style="background-color:#eee; width: 100%; height: 100px; font-size: 14px; line-height: 15px; border: 1px solid #dddddd; padding: 5px;"></textarea>
                             </div>
                         </div>
                         <hr>

+ 3 - 0
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobGroupDaoTest.java

@@ -7,6 +7,7 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
 
 @RunWith(SpringRunner.class)
@@ -27,6 +28,7 @@ public class XxlJobGroupDaoTest {
         group.setTitle("setTitle");
         group.setAddressType(0);
         group.setAddressList("setAddressList");
+        group.setUpdateTime(new Date());
 
         int ret = xxlJobGroupDao.save(group);
 
@@ -35,6 +37,7 @@ public class XxlJobGroupDaoTest {
         group2.setTitle("setTitle2");
         group2.setAddressType(2);
         group2.setAddressList("setAddressList2");
+        group2.setUpdateTime(new Date());
 
         int ret2 = xxlJobGroupDao.update(group2);