优化缓存策略, 开启/关闭缓存后同步控制自动刷新策略

This commit is contained in:
zhaojun1998
2020-01-05 15:56:17 +08:00
parent f128882034
commit cc993d8e65
2 changed files with 16 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
package im.zhaojun.common.service;
import com.alicp.jetcache.Cache;
import com.alicp.jetcache.RefreshPolicy;
import com.alicp.jetcache.anno.CacheRefresh;
import com.alicp.jetcache.anno.CacheType;
import com.alicp.jetcache.anno.Cached;
@@ -65,6 +66,7 @@ public abstract class AbstractFileService implements FileService {
public void clearCache() throws Exception {
Set<String> cacheKeys = getCacheKeys();
cache.removeAll(cacheKeys);
closeCacheAutoRefresh();
fileAsyncCacheService.setCacheFinish(false);
}
@@ -180,4 +182,13 @@ public abstract class AbstractFileService implements FileService {
currentFileService.fileList(key);
}
public void closeCacheAutoRefresh() {
cache.config().setRefreshPolicy(null);
}
public void openCacheAutoRefresh() {
RefreshPolicy refreshPolicy = RefreshPolicy.newPolicy(1, TimeUnit.MINUTES);
cache.config().setRefreshPolicy(refreshPolicy);
}
}

View File

@@ -136,14 +136,17 @@ public class SystemConfigService {
systemConfigRepository.saveAll(systemConfigList);
AbstractFileService currentFileService = getCurrentFileService();
if (!oldEnableCache && curEnableCache) {
log.debug("检测到开启了缓存, 开启预热缓存");
currentFileService.openCacheAutoRefresh();
fileAsyncCacheService.cacheGlobalFile();
}
if (oldEnableCache && !curEnableCache) {
log.debug("检测到关闭了缓存, 正在清理缓存数据");
getCurrentFileService().clearCache();
log.debug("检测到关闭了缓存, 正在清理缓存数据及关闭自动刷新");
currentFileService.clearCache();
}
}