2010-02-26 42 views
5

我的Java Web應用程序(tomcat)從SQL數據庫獲取其所有數據。但是,此數據庫的大部分內容只能通過批處理作業每天更新一次。由於這些表上的查詢往往會相當慢,我想緩存結果。在Java中具有固定到期時間的高速緩存

在滾動我自己的解決方案之前,我想查看java的現有緩存解決方案。顯然,我搜索了stackoverflow,並找到ehcache的參考和推薦。

但通過文檔查看,它似乎只允許將緩存對象的生存期設置爲持續時間(例如,在添加後1小時後),而我希望基於固定時間到期(例如,在上午0點30分到期) 。

有誰知道允許這種過期行爲的緩存庫嗎?或者如果可能的話,如何用ehcache做到這一點?

回答

5

EhCache允許您在創建單個緩存元素時以編程方式設置到期持續時間。在ehcache.xml中配置的值只是默認值。

如果您知道元素應該過期的具體絕對時間,那麼您可以計算then和「now」(即添加到緩存的時間)之間的差值,並將其設置爲time-to - 活的持續時間,使用Element.setTimeToLive()

1

您是否需要全面的緩存解決方案?您可以使用標準的地圖,然後安排一項工作,在需要的時間清理它們。

+1

這就是滾動我自己的解決方案選項:),當然是可行的,但如果有一個很好的第三方解決方案存在,我顯然更喜歡這一點。 – Pieter 2010-02-26 10:14:28

相關問題