2012-01-09 83 views
6

蔭使用JCS爲caching.Now我使用磁盤緩存來暫時存儲所有data.The問題是,當我使用JCS,密鑰被寫入磁盤僅如果緩存正常關掉。JCS緩存關機,保證持久化到磁盤

我正在使用磁盤使用模式作爲UPDATE,它告訴JCS立即將數據寫入磁盤而不將其保存在內存中。但問題是我們不保留緩存中對象的鍵列表。因此,我使用組緩存訪問並從緩存中獲取密鑰,然後遍歷密鑰以獲取結果。

因此,現在我陷入了一種情況,即必須正確關閉緩存,即在使用索引磁盤緩存將所有數據寫入磁盤後。但這裏存在複雜性,索引磁盤緩存使用後臺線程寫入磁盤,其狀態不會返回任何內容。

所以,現在我無法保證索引磁盤緩存已經將數據寫入磁盤到我的前端實現。是否有辦法解決這種情況,因爲現在我只是睡一些隨機時間(比如10秒),在緩存關閉之前,這實際上是一種非常愚蠢的方式。

編輯:我面臨着內存緩存這個問題爲好,但一秒鐘的睡眠大多是足夠data.But 500MB的磁盤緩存的情況稍有不同。

回答

0

這可能是因爲你的對象存儲在內存和等待寫入到磁盤。如果您需要立即寫對象到磁盤,而在執行,那麼你需要讓你的緩存CONFIGS的MaxObjects0

jcs.region.<yourRegion>.cacheattributes.MaxObjects=0 jcs.region.<yourRegion>.cacheattributes.DiskUsagePattern=UPDATE

我知道你已經知道UPDATE。再次添加它以供參考。