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";
|
}
|