From c2cb27c53529a8f3c4c115268341271204d93b0c Mon Sep 17 00:00:00 2001 From: jaysunxiao Date: Sun, 6 Jul 2025 15:33:49 +0800 Subject: [PATCH] feat[cache]: add refresh cache method to SingleCache --- .../main/java/com/zfoo/scheduler/util/SingleCache.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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()); + } + }