diff --git a/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/util/LocalCacheUtil.java b/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/util/LocalCacheUtil.java index fbab0613..cd0124ad 100644 --- a/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/util/LocalCacheUtil.java +++ b/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/util/LocalCacheUtil.java @@ -1,5 +1,7 @@ package com.xxl.job.admin.core.util; +import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -9,6 +11,8 @@ import java.util.concurrent.ConcurrentMap; * @author xuxueli 2018-01-22 21:37:34 */ public class LocalCacheUtil { + private LocalCacheUtil() { + } private static ConcurrentMap cacheRepository = new ConcurrentHashMap(); // 类型建议用抽象父类,兼容性更好; private static class LocalCacheData{ @@ -120,10 +124,11 @@ public class LocalCacheUtil { */ public static boolean cleanTimeoutCache(){ if (!cacheRepository.keySet().isEmpty()) { - for (String key: cacheRepository.keySet()) { - LocalCacheData localCacheData = cacheRepository.get(key); + Set> entries = cacheRepository.entrySet(); + for (Map.Entry e :entries) { + LocalCacheData localCacheData = e.getValue(); if (localCacheData!=null && System.currentTimeMillis()>=localCacheData.getTimeoutTime()) { - cacheRepository.remove(key); + cacheRepository.remove(e.getKey()); } } }