2017-04-04 5 views
0

固定速度ポーラーを使用したint-ftp:inbound-channel-adapterを使用します。メンテナンスの目的で、必要になったときにポーリングを停止する機能が必要です(URLを使用)。以下のアダプター構成を使用します。int-ftp:インバウンドチャネルアダプタポーラー制御

<int-ftp:inbound-channel-adapter id="inboundAdapter" 
     channel="inputChannel" session-factory="sessionFactory" 
     charset="UTF-8" auto-create-local-directory="false" 
     delete-remote-files="true" filename-regex="^.*\.(txt|in)$" 
     remote-directory="${remote.directory}" local-directory="${local.directory}"> 
     <poller max-messages-per-poll="-1" fixed-rate="3000" error-channel="errorChannel"/> 
    </int-ftp:inbound-channel-adapter> 

以下は、このアダプタに追加する必要がある動作です。私たちは、ファイルを保存しない私たちは、固定金利のポーリング

  • をやっていきたい

    1. は、任意の時点でローカルディレクトリにローカルディレクトリを上演し、我々はURLをヒットすると、クラウドコンテナの場所
    2. ですポーラは固定レートポーリングを尊重すべきではありません(つまり、リモートディレクトリからローカルディレクトリにファイルをプルしないでください)が、ローカルディレクトリ内のステージングされたファイルは完全に処理されます。
    3. ポーラは、固定料金ポーリング

    これを達成するためにアダプターを変更することをお勧めします。

  • 答えて

    0

    これを実現するには、アダプタの出力チャネルをnullChannelに設定します。

    <file:inbound-channel-adapter/>を追加してローカルディレクトリをポーリングします。

    ftpアダプタのポーラーを停止すると、リモートのフェッチは停止します(処理中の場合、現在のポーリングが完了した後)、ファイル・アダプターは引き続きローカル・ディレクトリーをポーリングします。

    ftpアダプタを停止/開始するには、@AutowiredSourcePollingChannelAdapterを使用するか、コントロールバスを使用します。

    +0

    バージョン5.0(GAは今年後半にリリースされ、マイルストーン4は現在利用可能です)から、アダプタの 'MessageSource'' maxFetchSize'プロパティを0に設定すると、リモートフェッチを無効にすることができます。フェッチされたファイル。これは、プログラムによって、または制御バスを介して行うことができる。 –