apacheignite中的触发器

apacheignite中的触发器,ignite,in-memory-database,gridgain,Ignite,In Memory Database,Gridgain,任何人都可以告诉我ApacheIgnite中有基于时间的触发器策略吗 我有一个对象具有到期日期,当该日期(时间戳)到期时,我想更新此值并在缓存中覆盖它在ApacheIgnite中是否可能 提前感谢您可以在中配置一个基于时间的过期策略,并使用急切的TTL:。这样,对象将在一段时间后急切地从缓存中过期 然后,您可以订阅javax.cache.event.CacheEntryExpiredListener,它将在每次过期后触发,并从该侦听器更新缓存。然而,当条目已经从缓存中过期,并且在您将更新的值放入

任何人都可以告诉我ApacheIgnite中有基于时间的触发器策略吗

我有一个对象具有到期日期,当该日期(时间戳)到期时,我想更新此值并在缓存中覆盖它在ApacheIgnite中是否可能


提前感谢

您可以在中配置一个基于时间的过期策略,并使用急切的TTL:。这样,对象将在一段时间后急切地从缓存中过期

然后,您可以订阅javax.cache.event.CacheEntryExpiredListener,它将在每次过期后触发,并从该侦听器更新缓存。然而,当条目已经从缓存中过期,并且在您将更新的值放入缓存之前,似乎会出现一个小窗口

如果您不接受上述窗口,那么您只需定期从缓存中查询所有条目,并更新所有早于某个过期时间的条目。在这种情况下,您必须确保所有条目都有一个时间戳字段,该字段将被索引并在SQL查询中使用。大概是这样的:

从时间戳>2的某个_类型中选择*

有关SQL查询的更多信息,请参见:,。

可能如下所示:

cache.withExpiryPolicy(new CreatedExpiryPolicy(new Duration(TimeUnit.SECONDS, 123))).put(k, v);
过期日期将仅适用于此条目

对于触发器,请尝试连续查询: