gpt4 book ai didi

java - 在Ehcache中设置刷新策略

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:38 29 4
gpt4 key购买 nike

Ehcache中有没有指定数据刷新策略?我目前正在从 OSCache 迁移应用程序到 Ehcache,除了设置 timeToIdle 和 timeToLive 之外,我似乎找不到任何方法来指定元素何时需要刷新。

我想要的是:在从缓存访问元素时,检查其关联的资源以查看它的更新时间是否晚于缓存元素的 lastUpdateTime 。如果是,则刷新缓存;否则从缓存中提供内容。

在 OSCache 中,这是通过捕获 NeedsRefreshException 并为元素设置自定义刷新策略来完成的。我已经在文档中挖掘了一段时间,但我无法找到任何方法或示例来说明如何在 Ehcache 中实现此目的。

如有任何帮助,我们将不胜感激:)。

亚历克斯

最佳答案

OSCache 的 NeedsRefreshException 想法确实有缺陷。首先,这违背了在通常执行流程中使用异常的建议(是的,我确实将过时的缓存命中视为正常流程);其次为此创建异常非常昂贵。

现在回到你的问题。如果我处于您的立场,我会评估扩展 net.sf.ehcache.Element 的可能性,或者将您的条目值包装到能够检查 timeToLive 的对象中。

但主要问题是,为什么需要这样做?如果您将对象放入缓存并指定 TTL,为什么还要在检索时检查 TTL?缓存应该能够在没有任何外部帮助的情况下驱逐对象。这同样适用于手动删除条目的情况(例如,当对象已更改时)。也许我在这里遗漏了一些东西?

您所询问的功能称为通读。这里解释了如何执行此操作:http://ehcache.org/documentation/concepts.html#read-through

--
另一个不高兴的 OSCache 用户正在等待迁移到 EHCache :(

关于java - 在Ehcache中设置刷新策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2801474/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com