在 apache Ignite 中触发
trigger in apache Ignite
任何人都可以告诉我 Apache Ignite 中是否有可用的基于时间的触发策略?
我有一个对象在该日期(时间戳)过期时具有过期日期我想更新此值并在缓存中覆盖它是否可以在 Apache Ignite 中使用
提前致谢
您可以在 Apache Ignite with eager TTL: Expiry Policies 中配置基于时间的过期策略。这样,对象将在一定时间后从缓存中急切过期。
然后你可以订阅一个javax.cache.event.CacheEntryExpiredListener,它会在每次到期后触发,并从那个监听器更新缓存。但是,当条目已经从缓存中过期并且在您将值和更新值放入缓存之前,看起来会有一个小 window。
如果上述window对您来说不可接受,那么您可以简单地定期从缓存中查询所有条目,并更新所有超过特定过期时间的条目。在这种情况下,您必须确保所有条目都有一个时间戳归档,该时间戳将被索引并用于 SQL 查询。像这样:
SELECT * 来自 SOME_TYPE where timestamp > 2;
更多关于 SQL 查询的信息:Distributed Queries, Local Queries.
可能是这样的:
cache.withExpiryPolicy(new CreatedExpiryPolicy(new Duration(TimeUnit.SECONDS, 123))).put(k, v);
过期将仅应用于此条目。
对于触发器尝试连续查询:apacheignite.readme.io/docs/continuous-queries
任何人都可以告诉我 Apache Ignite 中是否有可用的基于时间的触发策略?
我有一个对象在该日期(时间戳)过期时具有过期日期我想更新此值并在缓存中覆盖它是否可以在 Apache Ignite 中使用
提前致谢
您可以在 Apache Ignite with eager TTL: Expiry Policies 中配置基于时间的过期策略。这样,对象将在一定时间后从缓存中急切过期。
然后你可以订阅一个javax.cache.event.CacheEntryExpiredListener,它会在每次到期后触发,并从那个监听器更新缓存。但是,当条目已经从缓存中过期并且在您将值和更新值放入缓存之前,看起来会有一个小 window。
如果上述window对您来说不可接受,那么您可以简单地定期从缓存中查询所有条目,并更新所有超过特定过期时间的条目。在这种情况下,您必须确保所有条目都有一个时间戳归档,该时间戳将被索引并用于 SQL 查询。像这样:
SELECT * 来自 SOME_TYPE where timestamp > 2;
更多关于 SQL 查询的信息:Distributed Queries, Local Queries.
可能是这样的:
cache.withExpiryPolicy(new CreatedExpiryPolicy(new Duration(TimeUnit.SECONDS, 123))).put(k, v);
过期将仅应用于此条目。
对于触发器尝试连续查询:apacheignite.readme.io/docs/continuous-queries