From 8cecd257381a9941d2372399dd080dc30fdac3d2 Mon Sep 17 00:00:00 2001 From: tianwenbo Date: Fri, 10 Mar 2023 15:35:58 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90fix=20sonar=E3=80=91=20ExecutorRouteLF?= =?UTF-8?q?U.java=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/route/strategy/ExecutorRouteLFU.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java b/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java index 9df19726..ffdc3c55 100644 --- a/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java +++ b/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java @@ -17,21 +17,21 @@ import java.util.concurrent.ConcurrentMap; */ public class ExecutorRouteLFU extends ExecutorRouter { - private static ConcurrentMap> jobLfuMap = new ConcurrentHashMap>(); - private static long CACHE_VALID_TIME = 0; + private static ConcurrentMap> jobLfuMap = new ConcurrentHashMap<>(); + private long cacheValidTime = 0; public String route(int jobId, List addressList) { // cache clear - if (System.currentTimeMillis() > CACHE_VALID_TIME) { + if (System.currentTimeMillis() > cacheValidTime) { jobLfuMap.clear(); - CACHE_VALID_TIME = System.currentTimeMillis() + 1000*60*60*24; + cacheValidTime = System.currentTimeMillis() + 1000*60*60*24; } // lfu item init HashMap lfuItemMap = jobLfuMap.get(jobId); // Key排序可以用TreeMap+构造入参Compare;Value排序暂时只能通过ArrayList; if (lfuItemMap == null) { - lfuItemMap = new HashMap(); + lfuItemMap = new HashMap<>(); jobLfuMap.putIfAbsent(jobId, lfuItemMap); // 避免重复覆盖 } @@ -48,23 +48,24 @@ public class ExecutorRouteLFU extends ExecutorRouter { delKeys.add(existKey); } } - if (delKeys.size() > 0) { + if (!delKeys.isEmpty()) { for (String delKey: delKeys) { lfuItemMap.remove(delKey); } } // load least userd count address - List> lfuItemList = new ArrayList>(lfuItemMap.entrySet()); - Collections.sort(lfuItemList, new Comparator>() { + List> lfuItemList = new ArrayList<>(lfuItemMap.entrySet()); + /* Collections.sort(lfuItemList, new Comparator>() { @Override public int compare(Map.Entry o1, Map.Entry o2) { return o1.getValue().compareTo(o2.getValue()); } - }); + });*/ + Collections.sort(lfuItemList, (o1,o2)-> o1.getValue().compareTo(o2.getValue())); Map.Entry addressItem = lfuItemList.get(0); - String minAddress = addressItem.getKey(); +// String minAddress = addressItem.getKey(); addressItem.setValue(addressItem.getValue() + 1); return addressItem.getKey(); @@ -73,7 +74,7 @@ public class ExecutorRouteLFU extends ExecutorRouter { @Override public ReturnT route(TriggerParam triggerParam, List addressList) { String address = route(triggerParam.getJobId(), addressList); - return new ReturnT(address); + return new ReturnT<>(address); } }