2013-02-12 26 views
1

我一直在閱讀有關infinispan ...我需要使用普通的香草高速緩存,沒有集羣,沒有第二個休眠緩存。如何在到期後重新填充緩存?

我明白後到期,在緩存中的對象就會被破壞,我不明白的是如何刷新他們被摧毀之前這些對象。我檢查了這些事件,並且我沒有看到這樣的事情。

我的目標有保存對於一個給定的時間JPA結果查詢地圖,然後刷新結果不時。該緩存是隻讀的,不需要鈍化或存儲條目。

那麼,如何把新的值到緩存過期前?我猜測infinispan應該提供一個這樣做的方法,或者我錯過了什麼?也許這個邏輯應該用一個@Singleton EJB中的​​定時器來實現。

回答

2

如果您不希望緩存中的內容過期,請爲緩存設置負值timeToLive並且它們將永遠保留。 或者如果您需要某些僅在未使用時才過期的內容5秒,然後將maxIdle設置爲5秒。該鍵的每一個讀(cache.get())的了maxidle開始時間被重置,這樣的事情永遠不會從緩存中,只要它們被用作足夠頻繁。

1

我有大約緩存壞的概念。

緩存器的項目有一個過期時間,這樣一個檢查,如果給定的實體是存在的,如果它不存在就意味着它已經過期了,所以它的時間再次加載給定值。所以不需要實現一個計時器。此外,緩存將在給定項目過期時「自行清除」。