java - 每 5 小时更新一次 Spring Boot 缓存
问题描述
要求:每 5 小时使用一些数据更新缓存
调度程序类
@Component
public class SomeCacheDataUpdateScheduler{
@Autowired
DataFeignClient feignClient;
@Autowired
private CacheManager cacheManager;
@Scheduled(fixedDelay = 2000)
public void run() {
List<SomeObject> objList=feignClient.findAllData();
objList.forEach(obj->cacheManager.getCache("cache-name").put(obj.getId(), obj));
}
}
缓存管理器配置类
@Configuration
public class CacheConfig{
@Bean
public CacheManager cacheManager() {
return new ConcurrentMapCacheManager("cache-name");
}
}
现在,在调试时,我知道“feignClient.findAllData();” 正在返回所需的对象。但不知何故,缓存没有被填充。当我使用有效键从缓存地图中获取特定值时,它返回空值。
SomeObject sObj=cacheManager.getCache("cache-name").get("203",SomeObject.class);
上面的调用是在运行调度程序之后进行的。
我对 Spring Boot 的缓存机制完全陌生,对此问题的任何帮助以及缓存的最佳实践将不胜感激!
解决方案
推荐阅读
- javascript - 如何在 App Maker 查询中引用一个值(就像我在 Apps 脚本中所做的那样)
- python - 你能在 MySQL 表中存储字节(Fernet 令牌)吗?Python
- parquet - 雪花连接器的镶木地板文件格式
- python - 带有 engine.Table_Names() 的空表(* SQLAlchemy 的新手*)
- reportportal - 间歇性地获取报告门户错误:不允许完成启动并给出“进行中”状态
- c - 使用 malloc() 函数设置全局数组大小获取转储核心
- javascript - 节点js中的“memoryDataStore不是构造函数”错误
- python - 使用 Waitress 和 Flask 运行两次 API 调用
- r - 如何在ggplot中绘制表格对象
- javascript - 打开图片时如何读取图片的尺寸?