0

次のようなファイルを含むディレクトリがあります。

inbox/
  data.20130813T1921.json
  data.20130818T0123.json
  data.20130901T1342.json

私はApache Camel 2.11を使用していますが、プロセスの開始時に、最新の1つのファイルのみを処理したいと考えています。他のファイルは実際には無視できます。または、新しいファイルが処理されたら、古いファイルを削除することもできます。

以下を使用してコンポーネントを構成していますが、明らかに必要なことを実行していません。

file:inbox/?noop=true

noop最後のファイルだけでなく、他のすべてのファイルも保持します。起動時に、Camel は既存のすべてのファイルを処理しますが、これは必要以上のものです。

最新のファイルのみを処理する最良の方法は何ですか?

4

2 に答える 2

3

並べ替えを使用してから名前で並べ替えることができ、逆にする必要がある可能性があるため、最新が最初/最後になります。試してみて、必要なものを確認できます。次に、 maxMessagesPerPoll=1 を設定して、1 つのファイルのみをピックアップします。また、ファイル数を制限する前に並べ替えを許可するには、eagerMaxMessagesPerPoll=false を設定する必要があります。

詳細はhttp://camel.apache.org/file2で確認できます。ソートについては、 sortBy を使用したソートのセクションを参照してください。

于 2013-09-03T08:08:52.723 に答える