package com.iplatform.base.cache;
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.support.redis.cache.RedisCacheProvider;
/**
* 记录菜单缓存更新时间的缓存。
*
* 1) 由于菜单缓存未使用Redis持久化,导致在集群环境中,无法触发全量更新。
* 2) 因此采用记录更新时间记录到redis,当用户修改菜单数据后,记录修改时间;
* 3) 各个节点在调用方法前,检查时间,如果存在新时间则重新加载本地缓存。
*
* @author 时克英
* @date 2024-04-09
*/
public class RedisMenuUpdateCache extends RedisCacheProvider {
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";
}