任何人都可以告诉我 Apache Ignite 中是否有可用的基于时间的触发策略?
我有一个对象在那个日期(时间戳)过期时有过期日期我想更新这个值并在缓存中覆盖它是否可以在 Apache Ignite 中
提前致谢
最佳答案
您可以在 Apache Ignite 中配置基于时间的过期策略急切的 TTL:Expiry Policies .这样,对象将在一定时间后从缓存中急切过期。
然后您可以订阅一个 javax.cache.event.CacheEntryExpiredListener,它会在每次过期后触发,并从该监听器更新缓存。但是,当条目已经从缓存中过期并且在您将值和更新值放入缓存之前,看起来会有一个小窗口。
如果您不能接受上述窗口,那么您可以简单地定期从缓存中查询所有条目,并更新所有早于特定过期时间的条目。在这种情况下,您必须确保所有条目都有一个时间戳字段,它将被索引并用于 SQL 查询。像这样:
SELECT * from SOME_TYPE where timestamp > 2;
更多关于 SQL 查询的信息:Distributed Queries , Local Queries .
关于ignite - 在 apache Ignite 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43497132/