【问题标题】:Invoking of an event when an entry is expired in ehcache当 ehcache 中的条目过期时调用事件
【发布时间】:2014-10-18 11:15:36
【问题描述】:

我想实现一种缓存机制,其中缓存中的每个条目都有自己的到期时间,当特定条目到期时,我需要调用一个事件,该事件也会从数据库中删除该条目。到目前为止,我已经尝试过 EhCache,但我无法满足我的所有要求(如上所述)。我能够为每个条目创建一个具有固定到期时间的缓存,但我无法在到期事件上调用任何方法。所以我的问题是:

1) 是否可以为 ehcahce 中的每个条目附加“生存时间”?如果是,请说明如何实现。 2) 我是否需要手动调用 CacheEventListener 的“notifyElementExpired”方法,还是在条目过期时立即触发? 一个示例代码将不胜感激。提前致谢。

【问题讨论】:

  • 你检查this doc了吗?
  • 是的,我检查了这个链接。我实现了 CacheEventListener 类,还在 ehcache.xml 中注册了我的 Factory 类。但是我在实现类中的方法永远不会被调用,这就是我在问题中提到第二点的原因。

标签: java ehcache


【解决方案1】:

没有过期线程,亲在后台主动过期,但你可以很容易地自己添加并使用net.sf.ehcache.Cache#getKeysWithExpiryCheck。

Ehcache 中的过期仅内联发生(或者至少对于非集群用例,如果您使用 Terracotta 进行集群,则不再完全正确)。

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 2016-12-27
    • 1970-01-01
    • 2011-08-06
    • 2011-06-02
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 2013-09-16
    相关资源
    最近更新 更多