代码之家  ›  专栏  ›  技术社区  ›  Pieter

Java中具有固定到期时间的缓存

  •  5
  • Pieter  · 技术社区  · 14 年前

    我的Java Web应用程序(Tomcat)从SQL数据库中获取所有的数据。但是,此数据库的大部分内容每天只通过批处理作业更新一次。由于对这些表的查询速度很慢,所以我希望缓存结果。

    在我自己的解决方案之前,我想检查一下Java的现有缓存解决方案。显然,我搜索了stackoverflow并找到了 ehcache .

    但从文档中看,它似乎只允许将缓存对象的生存期设置为一个持续时间(例如,添加后1小时过期),而我希望基于固定时间(例如,在0h30 AM过期)。

    有人知道允许这种过期行为的缓存库吗?或者如果可能,如何使用ehcache?

    2 回复  |  直到 14 年前
        1
  •  5
  •   skaffman    14 年前

    ehcache允许您在创建单个缓存元素时以编程方式设置其到期时间。中配置的值 ehcache.xml 只是默认值。

    如果您知道元素应该过期的特定绝对时间,那么您可以计算出从“then”到“now”(即添加到缓存的时间)之间的秒数差,并使用 Element.setTimeToLive()

        2
  •  1
  •   Mark    14 年前

    您需要一个完整的缓存解决方案吗?您可以使用标准地图,然后安排一个作业在需要的时间清除它们。