Bladeren bron

调度中心,自动注册

xueli.xue 8 jaren geleden
bovenliggende
commit
50cfecfc56

+ 8 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java Bestand weergeven

1
 package com.xxl.job.admin.core.thread;
1
 package com.xxl.job.admin.core.thread;
2
 
2
 
3
+import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer;
3
 import com.xxl.job.admin.core.model.XxlJobRegistry;
4
 import com.xxl.job.admin.core.model.XxlJobRegistry;
4
 import com.xxl.job.admin.core.util.DynamicSchedulerUtil;
5
 import com.xxl.job.admin.core.util.DynamicSchedulerUtil;
5
 import com.xxl.job.core.registry.RegistHelper;
6
 import com.xxl.job.core.registry.RegistHelper;
28
 				int timeout = 15;
29
 				int timeout = 15;
29
 				while (true) {
30
 				while (true) {
30
 					try {
31
 					try {
32
+                        // registry admin
33
+                        int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address());
34
+                        if (ret < 1) {
35
+                            DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address());
36
+                        }
37
+
38
+                        // fresh registry map
31
 						ConcurrentHashMap<String, List<String>> temp = new ConcurrentHashMap<String, List<String>>();
39
 						ConcurrentHashMap<String, List<String>> temp = new ConcurrentHashMap<String, List<String>>();
32
-						// do biz
33
 						DynamicSchedulerUtil.xxlJobRegistryDao.removeDead(RegistHelper.TIMEOUT*2);
40
 						DynamicSchedulerUtil.xxlJobRegistryDao.removeDead(RegistHelper.TIMEOUT*2);
34
 						List<XxlJobRegistry> list = DynamicSchedulerUtil.xxlJobRegistryDao.findAll(RegistHelper.TIMEOUT*2);
41
 						List<XxlJobRegistry> list = DynamicSchedulerUtil.xxlJobRegistryDao.findAll(RegistHelper.TIMEOUT*2);
35
 						if (list != null) {
42
 						if (list != null) {
43
 								temp.put(groupKey, dataSet);
50
 								temp.put(groupKey, dataSet);
44
 							}
51
 							}
45
 						}
52
 						}
46
-						// gresh registry
47
 						registMap = temp;
53
 						registMap = temp;
48
-						logger.error("job registry :{}", list);
49
 					} catch (Exception e) {
54
 					} catch (Exception e) {
50
 						logger.error("job registry helper error:{}", e);
55
 						logger.error("job registry helper error:{}", e);
51
 					}
56
 					}

+ 5 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobRegistryDao.java Bestand weergeven

11
     public int removeDead(int timeout);
11
     public int removeDead(int timeout);
12
 
12
 
13
     public List<XxlJobRegistry> findAll(int timeout);
13
     public List<XxlJobRegistry> findAll(int timeout);
14
+
15
+    public int registryUpdate(String registryGroup, String registryKey, String registryValue);
16
+
17
+    public int registrySave(String registryGroup, String registryKey, String registryValue);
18
+
14
 }
19
 }

+ 22 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobRegistryDaoImpl.java Bestand weergeven

6
 import org.springframework.stereotype.Repository;
6
 import org.springframework.stereotype.Repository;
7
 
7
 
8
 import javax.annotation.Resource;
8
 import javax.annotation.Resource;
9
+import java.util.HashMap;
9
 import java.util.List;
10
 import java.util.List;
11
+import java.util.Map;
10
 
12
 
11
 /**
13
 /**
12
  * Created by xuxueli on 16/9/30.
14
  * Created by xuxueli on 16/9/30.
27
         return sqlSessionTemplate.selectList("XxlJobRegistryMapper.findAll", timeout);
29
         return sqlSessionTemplate.selectList("XxlJobRegistryMapper.findAll", timeout);
28
     }
30
     }
29
 
31
 
32
+    @Override
33
+    public int registryUpdate(String registryGroup, String registryKey, String registryValue) {
34
+        Map<String, Object> params = new HashMap();
35
+        params.put("registryGroup", registryGroup);
36
+        params.put("registryKey", registryKey);
37
+        params.put("registryValue", registryValue);
38
+
39
+        return sqlSessionTemplate.update("XxlJobRegistryMapper.registryUpdate", params);
40
+    }
41
+
42
+    @Override
43
+    public int registrySave(String registryGroup, String registryKey, String registryValue) {
44
+        Map<String, Object> params = new HashMap();
45
+        params.put("registryGroup", registryGroup);
46
+        params.put("registryKey", registryKey);
47
+        params.put("registryValue", registryValue);
48
+
49
+        return sqlSessionTemplate.update("XxlJobRegistryMapper.registrySave", params);
50
+    }
51
+
30
 }
52
 }

+ 13 - 0
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml Bestand weergeven

30
 		WHERE t.update_time <![CDATA[ > ]]> DATE_ADD(NOW(),INTERVAL -#{timeout} SECOND)
30
 		WHERE t.update_time <![CDATA[ > ]]> DATE_ADD(NOW(),INTERVAL -#{timeout} SECOND)
31
 	</select>
31
 	</select>
32
 
32
 
33
+    <update id="registryUpdate" parameterType="java.util.Map" >
34
+        UPDATE XXL_JOB_QRTZ_TRIGGER_REGISTRY
35
+        SET `update_time` = NOW()
36
+        WHERE `registry_group` = #{registryGroup}
37
+          AND `registry_key` = #{registryKey}
38
+          AND `registry_value` = #{registryValue}
39
+    </update>
40
+
41
+    <insert id="registrySave" parameterType="java.util.Map" >
42
+        INSERT INTO XXL_JOB_QRTZ_TRIGGER_REGISTRY( `registry_group` , `registry_key` , `registry_value`, `update_time`)
43
+        VALUES( #{registryGroup}  , #{registryKey} , #{registryValue}, NOW())
44
+    </insert>
45
+
33
 </mapper>
46
 </mapper>