diff --git a/scheduler/src/main/java/com/zfoo/scheduler/util/SingleCache.java b/scheduler/src/main/java/com/zfoo/scheduler/util/SingleCache.java index 171870b7..f669e98b 100644 --- a/scheduler/src/main/java/com/zfoo/scheduler/util/SingleCache.java +++ b/scheduler/src/main/java/com/zfoo/scheduler/util/SingleCache.java @@ -53,7 +53,7 @@ public class SingleCache { public static SingleCache lazyBuild(long refreshDuration, Supplier supplier) { var cache = new SingleCache(refreshDuration, supplier); - EventBus.asyncExecute(cache.hashCode(), () -> cache.cache = supplier.get()); + cache.lazyRefresh(); return cache; } @@ -76,7 +76,7 @@ public class SingleCache { // 使用双重检测锁的方式 if (now > refreshTime) { if (refreshTimeAtomic.compareAndSet(refreshTime, now + refreshDuration)) { - EventBus.asyncExecute(cache.hashCode(), () -> cache = supplier.get()); + lazyRefresh(); } } return cache; @@ -86,4 +86,8 @@ public class SingleCache { cache = value; } + public void lazyRefresh() { + EventBus.asyncExecute(cache.hashCode(), () -> cache = supplier.get()); + } + }