2017-11-10 9 views
1

Aggregator2コンポーネントに問題があります。私は、受信メッセージを式プロパティ付きのリストに結合する集計戦略を使用して、一緒に結合されるメッセージを決定する日付フィールドを指定します。アグリゲータの柔軟な時間基準completitionPredicate

メッセージをいつフラッシュするかを決定するために、いくつかのcron式と日付フィールドを使用するcompletitionPredicateが必要です。

問題は、メッセージが到着したときにcompletitionPredicateがチェックされているため、すでにフラッシュされるメッセージの集約リストがある場合、次のメッセージが到着するまで待機します。

私が必要とするものは、5秒ごとに呼び出されるcompletitionPredicateです。メッセージをフラッシュできるかどうかをチェックします。どうやってラクダでできますか?

この時間は動的に計算されるので、私はcompletitionTimeoutを使用できません。どうやってラクダでこんなことができますか?

答えて

1

タイムアウトが固定間隔を使用していると言うと、簡単にはできません。ただし、アグリゲーターで構成できるカスタムAggregateControllerを構築し、このコントローラーを使用して進行中のグループを強制的に完了させる独自のcronタスクを構築することができます。

+0

私はこのクラスの使い方の例を見つけようとしていますが、それがどのように機能しているかを理解しようとしていますが、役に立たないものはありません。私はそれをどのように使うべきですか?メソッド 'forceCompletionOfGroup(String key)'と 'forceCompletionOfAllGroups()'が呼び出されているときは?このコントローラーから集計グループを取得するにはどうすればよいですか? – michalo

+0

AggregationRepositoryから –

関連する問題