2017-08-01 4 views
0

私はさまざまなバリエーションで同様の問題を見ることができますが、明確な答えを見つけることはできませんでした。ここでCamel SFTPのスケジュールとオンデマンドで

はユースケースである:私はそれの上に毎時

  • からポーリングする

    • SFTPサーバ、私は、ユーザーがAD-を強制行う打つことができることをRESTエンドポイントを公開します同じSFTPからの即時取得を可能にします。私はポーリングをそのままにしておくスケジュールに満足しています。つまり、ポーリングした場合、ユーザーが20分後に更新すると、次のポーリングは40分後になります。

    ポーリングメカニズムを使用してダウンロードしたファイルをアドホックプルで再度ダウンロードしないでください。その逆も同様です。どちらの方法でも、まだダウンロードされていないすべてのファイルをダウンロードする必要があります(複数の新しいファイルが存在する可能性があります - オンデマンドフェッチでは同じ質問が表示されますが、

    私は、pollEnrichを介してSFTPを叩くことを避けたいと思います。私は、各pollEnrichがSFTPからの新しいファイルリストを要求しているので、すべてのファイルが取り出されるまでpollEnrichを繰り返し実行すると、

    私は、アドホックフェッチのために別々のルートを開始/停止するルートを作成することを考えていましたが、これにより、ルート間の冪等の動作が維持されることは確かではありません。

    スマートカメルの頭脳は、そのような要件を満たす最もエレガントな方法は何ですか?

  • 答えて

    0

    スマートなラクダの脳ではありませんが、私は私の理解に従って試してみます。

    希望、あなたはすでに通過した:

    http://camel.apache.org/file2.html

    http://camel.apache.org/ftp2.html

    を、私は、消費者と生産者のための独立したルートをフィルタを作成しているだろう。

    とファイルのオプションのために、私が使用しているだろう:、idempotentRepositoryを:真、readLock =冪等、冪等=真、idempotentKey = $ {onlynameファイル}として冪等、遅延、initialDelayの、useFixedDelay =真、maxMessagesPerPoll = 1、eagerMaxMessagesPerPollを、再帰的=偽 - 消費するために。 ファイルは再読み込みされません!あなたは、文書化されたように多様なオプションを使用して、遅延オプションのようにあなたに最適なものを試すことができます。 If yoy

    "私はpollEnrichを使ってSFTPを叩くのを避けたいと思います - それぞれのpollEnrichがSFTPの新しいファイルリストを要求することを理解しています。したがって、すべてのファイルが取り出されるまでpollEnrichをループで実行するとSFTP複数回。" - >オプションdisconnect = trueを使用しない限り、接続は終了せず、ファイルを連続的に消費または生成し、disconnectおよびdisconnectOnBatchCompleteのftpオプションをチェックすることができます。

    希望すると便利です。

    関連する問題