Просмотр исходного кода

代码优化,ConcurrentHashMap变量类型改为ConcurrentMap,避免因不同版本实现不同导致的兼容性问题;

xuxueli 6 лет назад
Родитель
Сommit
40607e44ca

+ 1 - 0
doc/XXL-JOB官方文档.md Просмотреть файл

1503
 - 16、任务日志主键调整为long,防止海量日志情况下数据溢出;
1503
 - 16、任务日志主键调整为long,防止海量日志情况下数据溢出;
1504
 - 17、任务日志列表交互优化,操作按钮合并为分割按钮;
1504
 - 17、任务日志列表交互优化,操作按钮合并为分割按钮;
1505
 - 18、HttpJobHandler优化,响应数据指定UTF-8格式,避免中文乱码;
1505
 - 18、HttpJobHandler优化,响应数据指定UTF-8格式,避免中文乱码;
1506
+- 19、代码优化,ConcurrentHashMap变量类型改为ConcurrentMap,避免因不同版本实现不同导致的兼容性问题;
1506
 
1507
 
1507
 
1508
 
1508
 ### 6.26 版本 v2.1.1 Release Notes[规划中]
1509
 ### 6.26 版本 v2.1.1 Release Notes[规划中]

+ 2 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobScheduler.java Просмотреть файл

27
 import javax.servlet.http.HttpServletResponse;
27
 import javax.servlet.http.HttpServletResponse;
28
 import java.io.IOException;
28
 import java.io.IOException;
29
 import java.util.concurrent.ConcurrentHashMap;
29
 import java.util.concurrent.ConcurrentHashMap;
30
+import java.util.concurrent.ConcurrentMap;
30
 
31
 
31
 /**
32
 /**
32
  * @author xuxueli 2018-10-28 00:18:17
33
  * @author xuxueli 2018-10-28 00:18:17
112
 
113
 
113
 
114
 
114
     // ---------------------- executor-client ----------------------
115
     // ---------------------- executor-client ----------------------
115
-    private static ConcurrentHashMap<String, ExecutorBiz> executorBizRepository = new ConcurrentHashMap<String, ExecutorBiz>();
116
+    private static ConcurrentMap<String, ExecutorBiz> executorBizRepository = new ConcurrentHashMap<String, ExecutorBiz>();
116
     public static ExecutorBiz getExecutorBiz(String address) throws Exception {
117
     public static ExecutorBiz getExecutorBiz(String address) throws Exception {
117
         // valid
118
         // valid
118
         if (address==null || address.trim().length()==0) {
119
         if (address==null || address.trim().length()==0) {

+ 2 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java Просмотреть файл

6
 
6
 
7
 import java.util.*;
7
 import java.util.*;
8
 import java.util.concurrent.ConcurrentHashMap;
8
 import java.util.concurrent.ConcurrentHashMap;
9
+import java.util.concurrent.ConcurrentMap;
9
 
10
 
10
 /**
11
 /**
11
  * 单个JOB对应的每个执行器,使用频率最低的优先被选举
12
  * 单个JOB对应的每个执行器,使用频率最低的优先被选举
16
  */
17
  */
17
 public class ExecutorRouteLFU extends ExecutorRouter {
18
 public class ExecutorRouteLFU extends ExecutorRouter {
18
 
19
 
19
-    private static ConcurrentHashMap<Integer, HashMap<String, Integer>> jobLfuMap = new ConcurrentHashMap<Integer, HashMap<String, Integer>>();
20
+    private static ConcurrentMap<Integer, HashMap<String, Integer>> jobLfuMap = new ConcurrentHashMap<Integer, HashMap<String, Integer>>();
20
     private static long CACHE_VALID_TIME = 0;
21
     private static long CACHE_VALID_TIME = 0;
21
 
22
 
22
     public String route(int jobId, List<String> addressList) {
23
     public String route(int jobId, List<String> addressList) {

+ 2 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java Просмотреть файл

8
 import java.util.LinkedHashMap;
8
 import java.util.LinkedHashMap;
9
 import java.util.List;
9
 import java.util.List;
10
 import java.util.concurrent.ConcurrentHashMap;
10
 import java.util.concurrent.ConcurrentHashMap;
11
+import java.util.concurrent.ConcurrentMap;
11
 
12
 
12
 /**
13
 /**
13
  * 单个JOB对应的每个执行器,最久为使用的优先被选举
14
  * 单个JOB对应的每个执行器,最久为使用的优先被选举
18
  */
19
  */
19
 public class ExecutorRouteLRU extends ExecutorRouter {
20
 public class ExecutorRouteLRU extends ExecutorRouter {
20
 
21
 
21
-    private static ConcurrentHashMap<Integer, LinkedHashMap<String, String>> jobLRUMap = new ConcurrentHashMap<Integer, LinkedHashMap<String, String>>();
22
+    private static ConcurrentMap<Integer, LinkedHashMap<String, String>> jobLRUMap = new ConcurrentHashMap<Integer, LinkedHashMap<String, String>>();
22
     private static long CACHE_VALID_TIME = 0;
23
     private static long CACHE_VALID_TIME = 0;
23
 
24
 
24
     public String route(int jobId, List<String> addressList) {
25
     public String route(int jobId, List<String> addressList) {

+ 2 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java Просмотреть файл

7
 import java.util.List;
7
 import java.util.List;
8
 import java.util.Random;
8
 import java.util.Random;
9
 import java.util.concurrent.ConcurrentHashMap;
9
 import java.util.concurrent.ConcurrentHashMap;
10
+import java.util.concurrent.ConcurrentMap;
10
 
11
 
11
 /**
12
 /**
12
  * Created by xuxueli on 17/3/10.
13
  * Created by xuxueli on 17/3/10.
13
  */
14
  */
14
 public class ExecutorRouteRound extends ExecutorRouter {
15
 public class ExecutorRouteRound extends ExecutorRouter {
15
 
16
 
16
-    private static ConcurrentHashMap<Integer, Integer> routeCountEachJob = new ConcurrentHashMap<Integer, Integer>();
17
+    private static ConcurrentMap<Integer, Integer> routeCountEachJob = new ConcurrentHashMap<Integer, Integer>();
17
     private static long CACHE_VALID_TIME = 0;
18
     private static long CACHE_VALID_TIME = 0;
18
     private static int count(int jobId) {
19
     private static int count(int jobId) {
19
         // cache clear
20
         // cache clear

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java Просмотреть файл

49
 
49
 
50
     // job timeout count
50
     // job timeout count
51
     private volatile long minTim = System.currentTimeMillis()/60000;     // ms > min
51
     private volatile long minTim = System.currentTimeMillis()/60000;     // ms > min
52
-    private volatile ConcurrentHashMap<Integer, AtomicInteger> jobTimeoutCountMap = new ConcurrentHashMap<>();
52
+    private volatile ConcurrentMap<Integer, AtomicInteger> jobTimeoutCountMap = new ConcurrentHashMap<>();
53
 
53
 
54
 
54
 
55
     /**
55
     /**

+ 3 - 2
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java Просмотреть файл

24
 
24
 
25
 import java.util.*;
25
 import java.util.*;
26
 import java.util.concurrent.ConcurrentHashMap;
26
 import java.util.concurrent.ConcurrentHashMap;
27
+import java.util.concurrent.ConcurrentMap;
27
 
28
 
28
 /**
29
 /**
29
  * Created by xuxueli on 2016/3/2 21:14.
30
  * Created by xuxueli on 2016/3/2 21:14.
223
 
224
 
224
 
225
 
225
     // ---------------------- job handler repository ----------------------
226
     // ---------------------- job handler repository ----------------------
226
-    private static ConcurrentHashMap<String, IJobHandler> jobHandlerRepository = new ConcurrentHashMap<String, IJobHandler>();
227
+    private static ConcurrentMap<String, IJobHandler> jobHandlerRepository = new ConcurrentHashMap<String, IJobHandler>();
227
     public static IJobHandler registJobHandler(String name, IJobHandler jobHandler){
228
     public static IJobHandler registJobHandler(String name, IJobHandler jobHandler){
228
         logger.info(">>>>>>>>>>> xxl-job register jobhandler success, name:{}, jobHandler:{}", name, jobHandler);
229
         logger.info(">>>>>>>>>>> xxl-job register jobhandler success, name:{}, jobHandler:{}", name, jobHandler);
229
         return jobHandlerRepository.put(name, jobHandler);
230
         return jobHandlerRepository.put(name, jobHandler);
234
 
235
 
235
 
236
 
236
     // ---------------------- job thread repository ----------------------
237
     // ---------------------- job thread repository ----------------------
237
-    private static ConcurrentHashMap<Integer, JobThread> jobThreadRepository = new ConcurrentHashMap<Integer, JobThread>();
238
+    private static ConcurrentMap<Integer, JobThread> jobThreadRepository = new ConcurrentHashMap<Integer, JobThread>();
238
     public static JobThread registJobThread(int jobId, IJobHandler handler, String removeOldReason){
239
     public static JobThread registJobThread(int jobId, IJobHandler handler, String removeOldReason){
239
         JobThread newJobThread = new JobThread(jobId, handler);
240
         JobThread newJobThread = new JobThread(jobId, handler);
240
         newJobThread.start();
241
         newJobThread.start();

+ 2 - 1
xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java Просмотреть файл

7
 import java.math.BigInteger;
7
 import java.math.BigInteger;
8
 import java.security.MessageDigest;
8
 import java.security.MessageDigest;
9
 import java.util.concurrent.ConcurrentHashMap;
9
 import java.util.concurrent.ConcurrentHashMap;
10
+import java.util.concurrent.ConcurrentMap;
10
 
11
 
11
 /**
12
 /**
12
  * glue factory, product class/object by name
13
  * glue factory, product class/object by name
33
 	 * groovy class loader
34
 	 * groovy class loader
34
 	 */
35
 	 */
35
 	private GroovyClassLoader groovyClassLoader = new GroovyClassLoader();
36
 	private GroovyClassLoader groovyClassLoader = new GroovyClassLoader();
36
-	private ConcurrentHashMap<String, Class<?>> CLASS_CACHE = new ConcurrentHashMap<>();
37
+	private ConcurrentMap<String, Class<?>> CLASS_CACHE = new ConcurrentHashMap<>();
37
 
38
 
38
 	/**
39
 	/**
39
 	 * load new instance, prototype
40
 	 * load new instance, prototype