2017-10-02 1 views
0

Camelを初めて使用していて、ログのストリーミング作業を試みていました。 変更を続けるログをストリーミングしようとしています。だから、私のルートが始まったら、ファイルをストリーミングして、すべてのラインをプロセッサに渡すべきです。 私は次のように試しました: しかし、私はこれを行うより良いことがあり、毎回処理するために読者に1行を送信するかもしれないと思います。 また、ログが上書きされるたびにルートを実行したままにしておいてください。キャメルを使用してファイルをストリームする

from("stream:file?fileName=/usr/dir/filename=logs.txt?options") 
       .process(new Reader()); 

また、どのようにしてプロセッサ内の行を読み取ることができますか。私は何時間も捜しましたが、私は良い例を見つけることができません。

答えて

1

キャメルストリーム・コンポーネントのdocumentationは、次のことを示唆している:

from("stream:file?fileName=/usr/dir/logs.txt&scanStream=true&scanStreamDelay=1000") 
    .process(new Reader()); 

また、あなたは多分、二回タイプミスをfilenameオプションを使用していますか?

あなたがあなた自身のプロセッサを作成することができ、各ライン上にいくつかのカスタム処理を行いたい場合は:あなたのラクダのコンテキストで次に

Processor myProcessor = new MyProcessor(); 
... 
from("file:///dir").process(myProcessor); 
+0

おかげnoMad17。昨日解決しました。私は読者にバッファリーダーを開いた。次に、リーダープロセスでログファイルから各行を実行しました。 また、私のルートをtimed。だから、それは行くと私はファイルに新しいコンテンツを持っているかどうかを確認し、それを読み取ります。 – Chinmay

関連する問題