2016-04-27 58 views
1

我想使用咖啡因進行緩存,並且需要寫入後臺。我想限制寫入數據庫的次數。該documentation回寫緩存,因此它應該是可能的,但對如何配置它有沒有例子。我已經實現了一個CacheWriter,但我不明白如何配置它,例如每10秒鐘只調用一次作家(如果有東西改變爲緩存)。如何使用Caffeine緩存配置後面的寫入?

回答

1

CacheWriter是一個擴展點和文檔描述了-情況下,它可能是有意義的。這些情況超出了圖書館的範圍,如果實施起來可能過於僵化。

作者是正常的寫入操作(但不是計算)中原子調用。這確保了對於給定密鑰觀察到變化的連續順序。爲了寫入後面,作者將該條目添加到異步處理的隊列中,例如,批量操作。

在實現這個功能,你可能要考慮,

  • 聚結的更新(例如收集到LinkedHashMap
  • 如果超過閾值大小執行批次之前的週期後寫
  • 如果操作尚未刷新,則從寫入後緩衝區中加載(這樣可以避免出現不一致的視圖,例如由於驅逐)
  • 處理重試,速率限制和條帶化取決於特徵外部資源的集成電路

更新:

維姆Deblauwe使用RxJava提供了一個很好的example

+0

啊,這完全不清楚。也許第一部分沒有標題可以得到一個標題「Usage」,其他3個標題可以分組在一個新標題「可能的用例」下。也許即使有一個提示,這些是可以在'CacheWriter'之上實現的東西,但在咖啡因中不可用。最後,我和Hazelcast一起去了,因爲他們已經寫出了盒子。 –

+1

謝謝,我會改進文檔。我認爲提供這種功能的社區擴展將會很好。我想咖啡因也像一個圖書館(靈活,小巧,明顯,專注),以避免許多框架作者犯的錯誤。希望它可以擴展到足以用作構建塊來處理其範圍之外的方面。 –