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