2014-07-18 58 views
0

我想緩存元素只在磁盤存儲不在內存/內存中,因爲我已經使用了以下配置,它將元素存儲在磁盤上,但它不會過期/從磁盤中刪除數據後5分鐘。ehcache沒有過期元素從磁盤存儲

<diskStore path="/global-cache" /> 

<cache name="globalCache" 
     maxElementsInMemory="0" 
     eternal="true" 
     timeToIdleSeconds="0" 
     diskSpoolBufferSizeMB="1" 
     diskPersistent="true" 
     timeToLiveSeconds="300" 
     diskExpiryThreadIntervalSeconds="120" 
     overflowToDisk="true" 
     memoryStoreEvictionPolicy="LFU" /> 

我可以在ehcache配置中做什麼,它會在指定的時間後過期磁盤存儲元素?

回答

0

你不能像documentation狀態:

如果一個條目到期,但不被訪問,也沒有資源約束 力驅逐,那麼到期的項保持不變。

即使某些約束會迫使驅逐Ehcache可能只會刪除部分過期條目,以便它不需要掃描所有磁盤存儲。 如果您絕對需要跟蹤每個已過期的條目,您將不得不自行實現此功能,但這會影響您的表現。這可能就是Ehcache沒有內置此功能的原因。