一連の FTP Outbound Gatewayls
コマンドから発生したすべてのメッセージを処理した後、Spring Integration アプリケーションを停止する最良の方法は何でしょうか?
1 回限りの作業として、見つかったディレクトリごとに再帰的に FTP ディレクトリ構造をトラバースし、各ファイルをコピーして、処理のためにメッセージとして送信する必要があります。FTP ディレクトリ ツリーが完全に走査され、走査によって生成されたすべてのメッセージが処理されたら、アプリケーションを適切に停止したいと思います。
私の現在の考えでは、ゲートウェイとすべてのキューのアクティビティを追跡して追跡し、しばらくの間すべてのサイズが 0 になったら、アプリケーションを終了することができます。これは、各ディレクトリのすべてのファイルのカウントを保持するなどのことを行うことで、より洗練されたものにすることができます(これAbstractRemoteFileOutboundGateway
には .ディレクトリごとに処理されたメッセージの数であり、それらがすべて説明されたらシャットダウンを開始します。
それはかなりの量の作業のように思えます - 誰でも簡単な方法を知っていますか? Spring Integration を使用せずにアプリを作成し、手動で面倒なことを大量に行う (FTP ツリーの反復、ファイルのコピー)、または Spring Integration を使用するが、代わりに自分のユース ケースに合わせてその一部を拡張する必要があるという選択肢があります。 .