是否有可能安排春季緩存驅逐到午夜每天?排定春季緩存驅逐?
我讀過Springs Cache Docs,沒有發現關於預定緩存逐出的內容。
我需要逐日驅逐緩存,並在應用程序之外發生某些更改時重新緩存緩存。
是否有可能安排春季緩存驅逐到午夜每天?排定春季緩存驅逐?
我讀過Springs Cache Docs,沒有發現關於預定緩存逐出的內容。
我需要逐日驅逐緩存,並在應用程序之外發生某些更改時重新緩存緩存。
嘗試使用@Scheduled 例子:
@Scheduled(fixedRate = ONE_DAY)
@CacheEvict(value = { CACHE_NAME })
public void clearCache() {
}
您也可以使用cron表達@Scheduled。
彈簧緩存框架是事件驅動的,即僅當調用各個方法時纔會觸發@Cacheable
或@CacheEvict
。
但是,您可以利用底層緩存提供程序(記住Spring緩存框架僅僅是一個抽象,並不提供緩存解決方案本身)使緩存本身無效。例如EhCache有一個屬性即。 timeToLiveSeconds
決定了直到緩存處於活動狀態的時間。但是,除非調用了@Cacheable
帶註釋的方法,否則這不會爲您重新填充緩存。
所以對於高速緩存收回並重新人口在特定時刻(說午夜提到)考慮實施在春季背景scheduled service根據需要將觸發高速緩存收回並重新人口。預期的行爲不是開箱即用的。
希望這會有所幫助。
明天早上我會試一試,並告訴你結果。 –
分享這個方法是否奏效.. –
我有一些其他事情的優先次序,我現在再次討論這個用例。回覆晚了非常抱歉。我馬上回來給你答案! –
Scheduled註解如何將自身綁定到CacheEvict註釋以瞭解它應該做什麼? –
'@Scheduled'調用方法clearCache指定的時間。 緩存被清理,因爲該方法由CacheEvict觸發。 請記得在類配置中包含配置@EnableScheduling。 –