需要在点燃缓存到期策略之前执行代码



我正在使用带有ModifiedExpiryPolicy的Ignite缓存,需要在事件执行之前执行一行代码。有什么帮助吗?

IgniteCache<String, Object> expiresCache = cache.withExpiryPolicy(new ModifiedExpiryPolicy(new Duration(Time.MINUTES, timeInMins)));
public class ClassName {
public IgnitePredicate<CacheEvent> functionName() {
    return new IgnitePredicate<CacheEvent>() {  
        @Override
        public boolean apply(CacheEvent evt) {
            //code to be executed after event.
            return true;
            }
        };
    }
}

我认为您需要使用事件来侦听到期事件。

Ignite ignite = Ignition.ignite();
// Local listener that listenes to local events.
IgnitePredicate<CacheEvent> locLsnr = evt -> {
  System.out.println("Received expiry event [evt=" + evt.name() + ", key=" + evt.key());
  return true; // Continue listening.
};
// Subscribe to specified cache events occuring on local node.
ignite.events().localListen(locLsnr, EventType.EVT_CACHE_OBJECT_EXPIRED);

请注意,这只是一个本地(节点(侦听器,您需要一个远程侦听器来查找远程节点上的过期事件。您还需要在配置文件中配置 includeEventTypes(出于性能原因,默认情况下禁用事件。

相关内容

  • 没有找到相关文章

最新更新