问题描述
在 spring boot 环境中,我有以下 Hazelcast 配置。
@Bean
public Config hazelCastConfig() {
final Config config = new Config().setInstanceName("hazelcast-cache")
.addMapConfig(new MapConfig().setName("hazelcast-cache")
.setMaxSizeConfig(
new MaxSizeConfig(200,MaxSizeConfig.MaxSizePolicy.FREE_HEAP_SIZE))
.setEvictionPolicy(EvictionPolicy.LRU).setTimeToLiveSeconds(5))
.setClassLoader(Thread.currentThread().getContextClassLoader());
final UserCodeDeploymentConfig distCLConfig = config.getUserCodeDeploymentConfig();
distCLConfig.setEnabled(true)
.setClassCacheMode(UserCodeDeploymentConfig.ClassCacheMode.ETERNAL)
.setProviderMode(UserCodeDeploymentConfig.ProviderMode.LOCAL_CLASSES_ONLY);
return config;
}
这是如何在我们的代码中使用可缓存的
@Cacheable(value = "presetCategoryMaster",key = "{#storeCode,#validDisplayFlag}")
public List<PresetCategoryMasterEntity> getPresetMasterCategoryForStoreCdAndValdiDisplayFlag(
final Integer storeCode,final Short validDisplayFlag) {
----------------
----------------
}
但 TTL 从未兑现。我们也在跟踪日志中确认。但是在第一次调用之后,一旦创建了缓存条目,它就永远不会被驱逐,除非您明确调用 CacehEvict() 或 CachePut()。尽管我们将 TTL 值设置为 5 秒,但即使过了一个小时,缓存也不会被清除。
感谢任何帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)