2017-08-02 11 views
1

キャッシュをn秒ごとに空にするにはどうすればいいですか?(n秒間のウィンドウ(バッチウィンドウのクエリ)のために来たデータに対してクエリを実行できるようにします)私は、追い出しポリシーが追加または変更されたキャッシュエントリに基づいているigniteコードで、FIFOとLRUベースの追い出しポリシーしか見つけることができませんでした。Apacheのキャッシュをクリアするn秒ごとにキャッシュする

私たちはCreatedExpiryPolicy

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

を使用して、スライディングウィンドウを持つことができます。しかし、私はこれは私がバッチ・ウィンドウの維持に役立つとは思わない理解しています。どちらもFIFOまたはLruEvictionPolicyになりません。

いくつかの静的な時間ウィンドウ(たとえば5秒ごと)に基づいた退去ポリシーが必要です。 独自の実装を記述する必要がありますか?

答えて

2

まあ、それは

IgniteCache.withExpiryPolicy

を追加した各エントリのExpiryPolicyを変更し、時間を毎回残り算出することが可能だが、それはあまりにも大きなオーバーヘッドになります - 各エントリは持っています独自のEvictionPolicy。

cron based schedulingを使用してキャッシュをクリアするジョブをスケジュールすることをお勧めします。

関連する問題