每隔n秒清除Apache Ignite中的缓存

时间:2017-08-02 06:03:23

标签: ignite jcache

我们如何每隔n秒清空一次缓存(这样我们就可以对n秒窗口的数据运行查询 - 批处理窗口查询)?我只能在点火代码中找到基于FIFO和LRU的驱逐策略,其中驱逐策略基于添加或修改的缓存条目。

我知道我们可以使用CreatedExpiryPolicy

创建一个滑动窗口
cfg.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new CreatedExpiryPolicy(new Duration(SECONDS, 5))));

但我不认为这会帮助我维护批量窗口。 FIFO或LruEvictionPolicy也不会。

我需要一些基于某个静态时间窗口的驱逐策略(例如每5秒)。 我是否必须编写自己的实现?

1 个答案:

答案 0 :(得分:2)

嗯,可以使用

为每个添加的条目更改ExpiryPolicy
  

IgniteCache.withExpiryPolicy

并且每次计算剩余时间,但开销太大 - 每个条目都有自己的EvictionPolicy。

我建议安排使用cron based scheduling清除缓存的作业: