From 5bcc6b6a05bb5b03db3ddc1c968b1ddebc0ce8f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BC=A0=E6=B5=A9=E5=AE=89?= Date: Mon, 16 Mar 2020 16:57:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E5=99=A8=E4=B8=8A=E7=BA=BF/?= =?UTF-8?q?=E4=B8=8B=E7=BA=BF=E5=AE=9E=E6=97=B6=E6=9B=B4=E6=96=B0=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E5=99=A8=E7=BB=84=E7=9A=84=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xxl/job/admin/dao/XxlJobGroupDao.java | 22 +++++++++++++++++-- .../job/admin/service/impl/AdminBizImpl.java | 2 ++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java index 35f3cd3c..9ec04e22 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java @@ -1,10 +1,12 @@ package com.xxl.job.admin.dao; -import com.xxl.job.admin.core.model.XxlJobGroup; +import java.util.List; + import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; -import java.util.List; +import com.xxl.job.admin.core.model.XxlJobGroup; /** * Created by xuxueli on 16/9/30. @@ -23,4 +25,20 @@ public interface XxlJobGroupDao { public int remove(@Param("id") int id); public XxlJobGroup load(@Param("id") int id); + + /** + * 刷新执行器地址 + * + * @param appName 执行器/应用 + * @param timeout 超时时间 + * @return 影响行数 + */ + @Update("UPDATE xxl_job_group gp\n" + "JOIN (\n" + "\tSELECT registry_key\n" + + "\t\t,GROUP_CONCAT(DISTINCT registry_value ORDER BY registry_value SEPARATOR ',') address_list\n" + + "\tFROM `xxl_job_registry` \n" + "\tWHERE registry_group='EXECUTOR' AND registry_key=#{appName}\n" + + "\t\tAND update_time>= DATE_ADD(NOW(),INTERVAL -#{timeout} SECOND)\n" + + ") reg ON gp.app_name=reg.registry_key\n" + "SET gp.address_list=reg.address_list\n" + + "WHERE gp.app_name=#{appName} AND gp.address_type=0") + Integer refreshGroupByApp(@Param("appName") String appName, @Param("timeout") Integer timeout); + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java index 1cdeac82..28eddc52 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java @@ -13,6 +13,7 @@ import com.xxl.job.core.biz.AdminBiz; import com.xxl.job.core.biz.model.HandleCallbackParam; import com.xxl.job.core.biz.model.RegistryParam; import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.enums.RegistryConfig; import com.xxl.job.core.handler.IJobHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -166,6 +167,7 @@ public class AdminBizImpl implements AdminBiz { private void freshGroupRegistryInfo(RegistryParam registryParam){ // Under consideration, prevent affecting core tables + xxlJobGroupDao.refreshGroupByApp(registryParam.getRegistryKey(), RegistryConfig.DEAD_TIMEOUT); } }