每n秒清除Apache Ignite中的缓存

每n秒清除Apache Ignite中的缓存,ignite,jcache,Ignite,Jcache,我们如何每n秒清空一次缓存(这样我们就可以对n秒窗口-批处理窗口查询中输入的数据运行查询)?我只能在ignite代码中找到基于FIFO和LRU的逐出策略,其中逐出策略基于添加或修改的缓存条目 我知道我们可以使用CreatedExpiryPolicy创建一个滑动窗口 cfg.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new CreatedExpiryPolicy(new Duration(SECONDS, 5)))); 但我不认为这会帮助我维

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

我知道我们可以使用CreatedExpiryPolicy创建一个滑动窗口

cfg.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new CreatedExpiryPolicy(new Duration(SECONDS, 5))));
但我不认为这会帮助我维护批处理窗口。FIFO或LruEvictionPolicy也不会

我需要一些驱逐政策,这是基于一些静态时间窗口(每5秒为例)。
我需要自己编写实现吗?

好的,可以使用

IgniteCache.withExpiryPolicy

cfg.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new CreatedExpiryPolicy(new Duration(SECONDS, 5))));
并且每次都计算剩余时间,但开销太大-每个条目都有自己的驱逐策略

我建议使用以下方法安排清除缓存的作业: