1

着信ファイルをチャネルに配置するSpringIntegrationアプリがあります。そこから、同じファイルを2つの異なる処理パイプライン(1つはS3にアーカイブし、もう1つはコンテンツを解析する)に送信し、後で両方が正常に処理されたことを認識できるダウンストリームコンポーネントを作成して、実際のローカルファイル。

セマンティクスは、スプリッター/アグリゲーターが必要な場合と似ていますが、メッセージを分割する代わりに、それを複製する必要があります。

利用可能なコンポーネントでこれを実現する方法はありますか、それともいくつかのカスタムクラスが必要ですか?

4

1 に答える 1

3

はい、<publish-subscribe-channel/>(with apply-sequence="true")はスプリッターと同様に機能しますが、チャネルの両方のサブスクライバーが同じFileオブジェクトを取得します。デフォルトでは、2つのブランチはシリアルに実行されますが、並行して処理する場合は、ExecutorChannelを導入できます。

各サブスクライバーに異なるオブジェクトを取得させたい場合はFile、トランスフォーマーを追加できます...

<transformer ... expression="new java.io.File(payload.absolutePath)" />

于 2013-01-04T16:14:24.283 に答える