2017-08-02 85 views
1

我們如何每隔n秒清空一次緩存(以便我們可以對第n個第二個窗口 - 批量窗口查詢)的數據運行查詢?我只能在點燃代碼中找到基於FIFO和LRU的驅逐策略,其中驅逐策略基於添加或修改的緩存條目。每隔n秒清除Apache Ignite中的緩存

我明白,我們可以使用CreatedExpiryPolicy

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

有一個滑動窗口,但我不認爲這會幫助我保持批處理窗口。 FIFO或LruEvictionPolicy都不會。

我需要一些基於某個靜態時間窗(例如每5秒)的驅逐策略。 我需要編寫自己的實現嗎?

回答

2

嗯,這是可以改變ExpiryPolicy每個添加的條目與

IgniteCache.withExpiryPolicy

,並計算每次剩餘時間,但它會是太大的開銷 - 每個項目均他們自己的EvictionPolicy。

我建議安排將使用cron based scheduling清除緩存的作業: