WangHan
2025-04-03 a1b85ef72062ca80db35546e4216dd564f3e0f57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.iplatform.base.cache;
 
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.support.redis.cache.RedisCacheProvider;
 
/**
 * 记录菜单缓存更新时间的缓存。
 * <pre>
 *     1) 由于菜单缓存未使用Redis持久化,导致在集群环境中,无法触发全量更新。
 *     2) 因此采用记录更新时间记录到redis,当用户修改菜单数据后,记录修改时间;
 *     3) 各个节点在调用方法前,检查时间,如果存在新时间则重新加载本地缓存。
 * </pre>
 * @author 时克英
 * @date 2024-04-09
 */
public class RedisMenuUpdateCache extends RedisCacheProvider<Long> {
 
    public RedisMenuUpdateCache(){
        this.setUseRedis(true);
        this.setLoadPage(false);
    }
 
    @Override
    public String getProviderName() {
        return "cache.base.menu_update";
    }
 
    @Override
    public Class<?> getProviderType() {
        return Long.class;
    }
 
    public void triggerTimeUpdate(){
        this.putCacheData(KEY_TIME_UPDATE, NumberGenerator.getSequenceNumber());
    }
 
    public Long getTimeUpdate(){
        return this.getCacheData(KEY_TIME_UPDATE);
    }
 
    public static final String KEY_TIME_UPDATE = "time_update";
}