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

问题描述:

我们如何每隔n秒清空一次缓存(以便我们可以对第n个第二个窗口 - 批量窗口查询)的数据运行查询?我只能在点燃代码中找到基于FIFO和LRU的驱逐策略,其中驱逐策略基于添加或修改的缓存条目。每隔n秒清除Apache Ignite中的缓存

我明白,我们可以使用CreatedExpiryPolicy

cfg.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new CreatedExpiryPolicy(new Duration(SECONDS, 5)))); 

有一个滑动窗口,但我不认为这会帮助我保持批处理窗口。 FIFO或LruEvictionPolicy都不会。

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

嗯,这是可以改变ExpiryPolicy每个添加的条目与

IgniteCache.withExpiryPolicy

,并计算每次剩余时间,但它会是太大的开销 - 每个项目均他们自己的EvictionPolicy。

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