我已经实施了一个 Spring-boot Camel 批处理应用程序,每5分钟运行一次,使用 camel-sql 组件来查询表中的一些数据。我正在使用Java DSL实现并在RouteBuilder.configure
内配置我的路由端点。一切都按预期正常工作。但现在作为优化的一部分,我计划缓存一些查询结果,它们不会像一些全局配置表,位置时区表等那样频繁更改。
我已经阅读了Camel EHcache文档,但没有正确理解标准的实现方式。
我的期望如下:
假设我的路由是,
from(timercomponent)
.to(SqlComponent1)
.process(ResultProcessor::processResult1)
.to(SqlComponent2) // needs to be cached
.process(ResultProcessor::processResult1)
....
...
我不希望SqlComponent2
始终点击数据库, 应使用缓存值 首次执行 到期时间为1周 。
此外,我只是想知道在这种情况下使用哪种缓存实现最佳。
答案 0 :(得分:0)
从Ehcache的角度来看,你需要一个使用1周TTL到期的缓存。
然后,我已经用Camel实现了缓存,但是文档似乎说Ehcache幂等存储库应该可以解决这个问题。