代码之家  ›  专栏  ›  技术社区  ›  Wim Deblauwe

如何使用咖啡因缓存配置写延迟?

  •  1
  • Wim Deblauwe  · 技术社区  · 10 年前

    我想用咖啡因缓存,我需要有一个后记。我想限制写入数据库的次数。这个 documentation 谈到 回写缓存 因此,这应该是可能的,但没有关于如何配置它的示例。我已经实施了 CacheWriter ,但我不知道如何配置它,例如,每10秒只调用一次编写器(当然,如果缓存发生了变化)。

    1 回复  |  直到 10 年前
        1
  •  2
  •   Ben Manes    9 年前

    CacheWriter 是一个扩展点,文档描述了可能有意义的用例。这些案例超出了库的范围,如果实施,可能会过于严格。

    在正常写入操作(而不是计算)期间,会自动调用writer。这样可以确保对给定的键遵守更改的顺序。对于write-behind,编写器将把条目添加到异步处理的队列中,例如,批处理操作。

    在实施此功能时,您可能需要考虑,

    • 合并更新(例如,收集到 LinkedHashMap )
    • 如果批处理超过阈值大小,则在定期写延迟之前执行批处理
    • 如果操作尚未刷新,则从write-behind缓冲区加载(这避免了视图不一致,例如由于收回)
    • 根据外部资源的特点处理重审、限速和分条

    更新:

    Wim Deblauwe提供了一个 example 使用RxJava。

    推荐文章