1

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

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

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

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

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

4

1 回答 1

2

好吧,可以为每个添加的条目更改 ExpiryPolicy

IgniteCache.withExpiryPolicy

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

我建议使用基于 cron 的调度来安排将清除缓存的作业:

于 2017-08-02T06:23:13.793 回答