2017-09-19 13 views
0

私は何百万人ものユーザーの大規模なイベントを処理するためにDrools Fusionを使用しています。Drools Fusionイベント処理LRU退去

イベントの量が膨大であるため、kieセッションで受信イベントを追加し続けると、メモリ不足エラーが発生します。 各イベントはUserに関連付けられています。ユーザーのLRUポリシーに基づいてセッションからイベントを排除することは可能ですか?

サンプルコードは参考になります。私はあなたがユーザーのLRUポリシーに基づいて作業メモリからイベントを削除しますいくつかのルールを記述することができると思い

おかげ

答えて

1

イベントがポリシーを持っているかのようなもの

+0

ポリシーはいつ評価されますか?各イベントチェックで作業メモリサイズが設定されていて、サイズ>しきい値の場合 - 設定された時間より古いイベントを削除します。フィルタイベントを(挿入時間 - 現在)とその複雑さやパフォーマンスの影響に基づいて取得できますか? – user1846749

+0

このルールはいつ評価されるのですか?そうであれば、以前のすべてのルールと同様に、発火時に評価されます。連続的な処理を処理するには、fireUntilHalt()メソッドを使用できます。 https://docs.jboss.org/drools/release/7.3.0.Final/drools-docs/html_single/index.html#_active_modeのドキュメントをご覧ください。あなたが最も古いイベントを削除しなければならないと思っているように、イベントの有効期限を設定することも役に立ちます。こちらのドキュメントをご覧ください:https://docs.jboss.org/drools/release/7.3.0.Final/drools-docs/html_single/index.html#__expires_time_interval –