Class CacheWarmerManager
java.lang.Object
cloud.opencode.base.cache.warming.CacheWarmerManager
Cache Warmer Manager - Orchestrates cache warming lifecycle
缓存预热管理器 - 编排缓存预热生命周期
Manages the warming of caches at application startup or on-demand, with support for priority ordering, async execution, and callbacks.
管理应用启动时或按需的缓存预热,支持优先级排序、异步执行和回调。
Features | 主要功能:
- Priority-based warming order | 基于优先级的预热顺序
- Parallel warming execution | 并行预热执行
- Progress tracking and metrics | 进度跟踪和指标
- Retry on failure | 失败重试
- Completion callbacks | 完成回调
Usage Examples | 使用示例:
// Register warmers
CacheWarmerManager manager = CacheWarmerManager.getInstance();
manager.register("users", userCache, () -> userDao.findHotUsers(1000));
manager.register("products", productCache,
CacheWarmer.paged(offset -> productDao.findProducts(offset, 100), 100, 10));
// Warm all caches
WarmingResult result = manager.warmAll();
System.out.println("Warmed " + result.totalEntries() + " entries in " + result.duration());
// Async warming
manager.warmAllAsync().thenAccept(r ->
log.info("Warming completed: {}", r));
// Warm specific cache
manager.warm("users");
Security | 安全性:
- Thread-safe: Yes - 线程安全: 是
- Null-safe: Yes - 空值安全: 是
- Since:
- JDK 25, opencode-base-cache V2.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordResult for a single cache warming 单个缓存预热结果static interfaceWarming lifecycle listener 预热生命周期监听器static final recordWarming metrics 预热指标static final recordResult for all cache warming 所有缓存预热结果 -
Method Summary
Modifier and TypeMethodDescriptionstatic CacheWarmerManagerGet singleton instance 获取单例实例Get warming metrics 获取预热指标Get registered cache names 获取已注册的缓存名称<K,V> CacheWarmerManager register(String name, Cache<K, V> cache, CacheWarmer<K, V> warmer) Register a cache warmer 注册缓存预热器<K,V> CacheWarmerManager register(String name, Cache<K, V> cache, CacheWarmer<K, V> warmer, int priority) Register a cache warmer with priority 注册带优先级的缓存预热器Set global warming listener 设置全局预热监听器unregister(String name) Unregister a cache warmer 取消注册缓存预热器Warm a specific cache 预热指定缓存warmAll()Warm all registered caches synchronously 同步预热所有注册的缓存Warm all registered caches asynchronously 异步预热所有注册的缓存warmAllParallel(int parallelism) Warm all caches in parallel 并行预热所有缓存Warm a specific cache asynchronously 异步预热指定缓存
-
Method Details
-
getInstance
-
register
Register a cache warmer 注册缓存预热器- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
name- cache name | 缓存名称cache- target cache | 目标缓存warmer- the warmer | 预热器- Returns:
- this manager | 此管理器
-
register
public <K,V> CacheWarmerManager register(String name, Cache<K, V> cache, CacheWarmer<K, V> warmer, int priority) Register a cache warmer with priority 注册带优先级的缓存预热器- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
name- cache name | 缓存名称cache- target cache | 目标缓存warmer- the warmer | 预热器priority- priority (lower = higher) | 优先级(数值越小越优先)- Returns:
- this manager | 此管理器
-
unregister
Unregister a cache warmer 取消注册缓存预热器- Parameters:
name- cache name | 缓存名称- Returns:
- this manager | 此管理器
-
setListener
Set global warming listener 设置全局预热监听器- Parameters:
listener- the listener | 监听器- Returns:
- this manager | 此管理器
-
warmAll
Warm all registered caches synchronously 同步预热所有注册的缓存- Returns:
- warming result | 预热结果
-
warmAllAsync
Warm all registered caches asynchronously 异步预热所有注册的缓存- Returns:
- future with warming result | 包含预热结果的 Future
-
warmAllParallel
Warm all caches in parallel 并行预热所有缓存- Parameters:
parallelism- max concurrent warmings | 最大并发预热数- Returns:
- warming result | 预热结果
-
warm
Warm a specific cache 预热指定缓存- Parameters:
name- cache name | 缓存名称- Returns:
- warming result for this cache | 此缓存的预热结果
-
warmAsync
Warm a specific cache asynchronously 异步预热指定缓存- Parameters:
name- cache name | 缓存名称- Returns:
- future with warming result | 包含预热结果的 Future
-
getMetrics
Get warming metrics 获取预热指标- Returns:
- metrics | 指标
-
getRegisteredCaches
-