私はSFTP統合でSpringをセットアップし、SFTPサーバーをポーリングしてファイルをプルダウンしています。春の統合SFTP - 投稿後の転送処理
私が知りたいことは、ダウンロードが完了したら各ファイルでタスクを実行することが可能なのでしょうか?私はファイルシステムの腕時計の道を踏み出すことを望んでいません - これのために春のSFTPに組み込まれたものがありますか?
ドキュメントを見て、それはチャネルで達成できるように見えます。私は、顧客のインターセプタまたは類似を発射する何をする必要があるかわからないんだけど
<int:channel id="receiveChannel">
<int:queue />
</int:channel>
:
これは私のような受信機チャネルが現在に見えるものです。
編集:春のドキュメントから、この意見:
SFTPインバウンド・チャネル・アダプターがポーリングの消費者であることを理解することも重要であるため、あなたがポーラー(グローバルなデフォルトまたはローカルのいずれかを設定する必要がありますサブ要素)。ファイルがローカルディレクトリに転送されると、ペイロードタイプとしてjava.io.Fileを持つMessageが生成され、channel属性で識別されるチャネルに送信されます。
私はこれを実装する方法がわかりません。例は見つかりません。
ええと、私は削除された答えでそれを試みました、そして、私はそれが働いていたと思いました。しかし、送信イベントは唯一のイベントであり、アプリケーションを再起動したときだけです。 –
もっと詳しくdocsを読んでサンプルに従ってください。アプリケーションの作業中にリモートディレクトリに新しいファイルがないため、開始時にのみイベントが表示されます。実際には、 '' interceptor'ではなく、 ''を行うべきです。なぜあなたは私の答えが不十分であるかを疑問に思っているのか分かりません。私たちはさまざまな言語を話すだけで、あなたのアプリケーションであなたのために働きたいと思っています。いくつかのドキュメントを読むだけで、適切なサンプルを使ってエクササイズをしてください。 –
ありがとうございましたArtem - 私はservice-activatorの使用に切り替えました。ただし、システムが再起動したときにのみ、このメソッドが起動されます。ドキュメントからは、ファイルのダウンロードが完了したときに起動すると思っていました。私はドキュメントに従うようにしています。 –