From 40607e44ca58f296f8a813531d6943cacf66df06 Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Sat, 6 Jul 2019 23:10:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96=EF=BC=8CCo?= =?UTF-8?q?ncurrentHashMap=E5=8F=98=E9=87=8F=E7=B1=BB=E5=9E=8B=E6=94=B9?= =?UTF-8?q?=E4=B8=BAConcurrentMap=EF=BC=8C=E9=81=BF=E5=85=8D=E5=9B=A0?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E7=89=88=E6=9C=AC=E5=AE=9E=E7=8E=B0=E4=B8=8D?= =?UTF-8?q?=E5=90=8C=E5=AF=BC=E8=87=B4=E7=9A=84=E5=85=BC=E5=AE=B9=E6=80=A7?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/XXL-JOB官方文档.md | 1 + .../java/com/xxl/job/admin/core/conf/XxlJobScheduler.java | 3 ++- .../xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java | 3 ++- .../xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java | 3 ++- .../job/admin/core/route/strategy/ExecutorRouteRound.java | 3 ++- .../com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java | 2 +- .../main/java/com/xxl/job/core/executor/XxlJobExecutor.java | 5 +++-- .../src/main/java/com/xxl/job/core/glue/GlueFactory.java | 3 ++- 8 files changed, 15 insertions(+), 8 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index 0db28575..414224ca 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -1503,6 +1503,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段 - 16、任务日志主键调整为long,防止海量日志情况下数据溢出; - 17、任务日志列表交互优化,操作按钮合并为分割按钮; - 18、HttpJobHandler优化,响应数据指定UTF-8格式,避免中文乱码; +- 19、代码优化,ConcurrentHashMap变量类型改为ConcurrentMap,避免因不同版本实现不同导致的兼容性问题; ### 6.26 版本 v2.1.1 Release Notes[规划中] diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobScheduler.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobScheduler.java index 1f8ef2d3..be0931e4 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobScheduler.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobScheduler.java @@ -27,6 +27,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** * @author xuxueli 2018-10-28 00:18:17 @@ -112,7 +113,7 @@ public class XxlJobScheduler implements InitializingBean, DisposableBean { // ---------------------- executor-client ---------------------- - private static ConcurrentHashMap executorBizRepository = new ConcurrentHashMap(); + private static ConcurrentMap executorBizRepository = new ConcurrentHashMap(); public static ExecutorBiz getExecutorBiz(String address) throws Exception { // valid if (address==null || address.trim().length()==0) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java index e2289c8f..9df19726 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java @@ -6,6 +6,7 @@ import com.xxl.job.core.biz.model.TriggerParam; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** * 单个JOB对应的每个执行器,使用频率最低的优先被选举 @@ -16,7 +17,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public class ExecutorRouteLFU extends ExecutorRouter { - private static ConcurrentHashMap> jobLfuMap = new ConcurrentHashMap>(); + private static ConcurrentMap> jobLfuMap = new ConcurrentHashMap>(); private static long CACHE_VALID_TIME = 0; public String route(int jobId, List addressList) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java index f3acbb79..56766838 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java @@ -8,6 +8,7 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** * 单个JOB对应的每个执行器,最久为使用的优先被选举 @@ -18,7 +19,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public class ExecutorRouteLRU extends ExecutorRouter { - private static ConcurrentHashMap> jobLRUMap = new ConcurrentHashMap>(); + private static ConcurrentMap> jobLRUMap = new ConcurrentHashMap>(); private static long CACHE_VALID_TIME = 0; public String route(int jobId, List addressList) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java index d297e259..936ef0ed 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java @@ -7,13 +7,14 @@ import com.xxl.job.core.biz.model.TriggerParam; import java.util.List; import java.util.Random; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** * Created by xuxueli on 17/3/10. */ public class ExecutorRouteRound extends ExecutorRouter { - private static ConcurrentHashMap routeCountEachJob = new ConcurrentHashMap(); + private static ConcurrentMap routeCountEachJob = new ConcurrentHashMap(); private static long CACHE_VALID_TIME = 0; private static int count(int jobId) { // cache clear diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java index 9d6fdf1d..f4375346 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java @@ -49,7 +49,7 @@ public class JobTriggerPoolHelper { // job timeout count private volatile long minTim = System.currentTimeMillis()/60000; // ms > min - private volatile ConcurrentHashMap jobTimeoutCountMap = new ConcurrentHashMap<>(); + private volatile ConcurrentMap jobTimeoutCountMap = new ConcurrentHashMap<>(); /** diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java b/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java index d02d337b..e617becc 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java @@ -24,6 +24,7 @@ import org.slf4j.LoggerFactory; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** * Created by xuxueli on 2016/3/2 21:14. @@ -223,7 +224,7 @@ public class XxlJobExecutor { // ---------------------- job handler repository ---------------------- - private static ConcurrentHashMap jobHandlerRepository = new ConcurrentHashMap(); + private static ConcurrentMap jobHandlerRepository = new ConcurrentHashMap(); public static IJobHandler registJobHandler(String name, IJobHandler jobHandler){ logger.info(">>>>>>>>>>> xxl-job register jobhandler success, name:{}, jobHandler:{}", name, jobHandler); return jobHandlerRepository.put(name, jobHandler); @@ -234,7 +235,7 @@ public class XxlJobExecutor { // ---------------------- job thread repository ---------------------- - private static ConcurrentHashMap jobThreadRepository = new ConcurrentHashMap(); + private static ConcurrentMap jobThreadRepository = new ConcurrentHashMap(); public static JobThread registJobThread(int jobId, IJobHandler handler, String removeOldReason){ JobThread newJobThread = new JobThread(jobId, handler); newJobThread.start(); diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java b/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java index 4b457492..b727a851 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java @@ -7,6 +7,7 @@ import groovy.lang.GroovyClassLoader; import java.math.BigInteger; import java.security.MessageDigest; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** * glue factory, product class/object by name @@ -33,7 +34,7 @@ public class GlueFactory { * groovy class loader */ private GroovyClassLoader groovyClassLoader = new GroovyClassLoader(); - private ConcurrentHashMap> CLASS_CACHE = new ConcurrentHashMap<>(); + private ConcurrentMap> CLASS_CACHE = new ConcurrentHashMap<>(); /** * load new instance, prototype