繁体   English   中英

Infinispan CacheEntryExpired侦听器

[英]Infinispan CacheEntryExpired listener

我试图在Infinispan中为CacheEntryExpired设置侦听器。 我创建了一个测试监听器,它仅记录到期时间和密钥。

文档( https://docs.jboss.org/infinispan/8.0/apidocs/org/infinispan/notifications/cachelistener/annotation/CacheEntryExpired.html )并未注明,但看来该事件是在未知的情况下调用的未来,但不一定在它过期之后。 有时在真正的到期后几分钟,有时是在尝试获取密钥所赋予的值之后。

有什么方法可以配置缓存来加速此事件? 我不一定立即需要它,但是10分钟之后,或者从未真正接受它。

问候

条目到期与被通知之间的最大时间由到期收割者线程的频率控制。 过期收割者线程将检查内存中的所有条目是否过期,然后检查存储中的所有条目是否过期。 这就是为什么在链接的Javadoc中谈论如果收割者线程找到它可能立即到期。

可以通过调用[1]来配置用于设置收割频率的配置。 默认值为每分钟并启用。 因此,默认情况下,条目应在一分钟左右的时间内通知到期。 我之所以这样说,是因为它仍然必须先对缓存进行迭代,才能找到过期的条目。

如果用户在密钥过期时尝试访问该密钥,则可能较早发生过期通知。 请注意,可以禁用收割者,这样做将是获得过期条目通知的唯一方法。

[1] https://docs.jboss.org/infinispan/8.2/apidocs/org/infinispan/configuration/cache/ExpirationConfigurationBuilder.html#wakeUpInterval-long-java.util.concurrent.TimeUnit-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM