Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第170章 ストリーム
ストリームコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
stream: コンポーネントは、
System.in
、System.out
および System.err
ストリームへのアクセスを提供し、ファイルと URL のストリーミングを許可します。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
stream:in[?options] stream:out[?options] stream:err[?options] stream:header[?options]
stream:in[?options]
stream:out[?options]
stream:err[?options]
stream:header[?options]
さらに、
ファイル
および URL エンドポイント URI は Apache Camel 2.0 でサポートされています。
stream:file?fileName=/foo/bar.txt stream:url[?options]
stream:file?fileName=/foo/bar.txt
stream:url[?options]
stream:header
URI が指定されている場合、ストリーム
ヘッダーを使用して、書き込むストリームを検索します。このオプションは、ストリームプロデューサー(つまり、from ()には表示されません)でのみ利用できます
。
URI にクエリーオプションは
?option=value&option=value&.. の形式で追加できます。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、Red Hat JBoss Enterprise Application Platform (JBoss EAP) コンテナー上で簡素化されたデプロイメントモデルを提供する Camel on EAP (Wildfly Camel) フレームワークによってサポートされます。このモデルの詳細は、Deploying into a Web Server の Apache Camel on JBoss EAP の章を参照してください。
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | デフォルト値 | 説明 |
---|---|---|
delay
|
0
|
ストリームの消費または生成前の初期遅延(ミリ秒単位)。 |
encoding
|
JVM のデフォルト |
1.4 の時点では、テキストベースのストリーム(例:メッセージボディーは String オブジェクト)を使用するようにエンコーディング(文字 セット名)を設定できます。指定のない場合、Apache Camel は JVM のデフォルト Charset を 使用します。
|
promptMessage
|
null
|
Apache Camel 2.0: stream:in から読み取るときに使用するメッセージプロンプト。たとえば、これを Enter a command に設定できます 。
|
promptDelay
|
0
|
Apache Camel 2.0: メッセージプロンプトを表示する前のオプションの遅延(ミリ秒単位)。 |
initialPromptDelay
|
2000
|
Apache Camel 2.0: メッセージプロンプトを表示する前の初期遅延(ミリ秒単位)。この遅延は 1 回だけ発生します。システムの起動時に使用され、システムへの他のロギングが行われている間にメッセージのプロンプトが書き込まれないようにすることができます。 |
fileName
|
null
|
Apache Camel 2.0: stream:file URI 形式を使用する場合、このオプションはストリーミング元/元のファイル名を指定します。
|
url
|
null
|
stream:url URI 形式を使用する場合、このオプションはストリーム間の URL を指定します。入力ストリームは、JDK URLConnection 機能を使用して開きます。
|
scanStream
|
false
|
Apache Camel 2.0: unix
tail コマンドなどのストリームを継続的に読み取るために使用されます。Camel 2.4 to Camel 2.6: 上書きされるとファイルのオープンを再試行します。tail --retry のようになります。
|
retry
|
false
|
Camel 2.7: ファイルが上書きされた場合にファイルを開く再試行します。tail --retry のようになります。
|
scanStreamDelay
|
0
|
Apache Camel 2.0: scanStream を使用する場合の読み取り試行間の遅延(ミリ秒単位)。
|
groupLines
|
0
|
Camel 2.5: コンシューマーの X 数の行をグループ化します。たとえば、10 行をグループ化し、行ごとに 1 Exchange ではなく、10 行だけのエクスチェンジをスプアウトします。 |
autoCloseCount
|
0
|
Camel 2.10.0: (2.9.3 および 2.8.6)プロデューサーでストリームを閉じる前に処理するメッセージの数。デフォルトではストリームを閉じません(Producer が停止した場合のみ)。より多くのメッセージが送信されると、ストリームは別の autoCloseCount バッチに対して再度開きます。
|
closeOnDone
|
false
|
Camel 2.11.0: このオプションは、Splitter と streaming を同じファイルに組み合わせて使用します。パフォーマンスを向上させるために、ストリームを開いた状態にし、スプリ ッター が完了したときのみ閉じることです。ここでは、2 つ以上のファイルではなく、同じファイルにのみストリームを行う必要があり、最後の分割されたメッセージがストリームエンドポイントにルーティングされ、閉じられるシグナルを取得する必要があることに注意してください。 |
メッセージの内容 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
stream: コンポーネントは、ストリームに書き込むために
String
または byte[]
のいずれかをサポートします。String
または byte[]
コンテンツのいずれかを message.in.body
に追加します。ストリームに送信されたメッセージ: バイナリーモードのプロデューサーは、( String
メッセージではなく)改行文字が続くことはありません。null
ボディーを持つメッセージは出力ストリームに追加されません。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、
direct:in
エンドポイントから System.out
ストリームにメッセージをルーティングします。
以下の例は、ヘッダータイプを使用して、使用するストリームを判断する方法を示しています。この例では、独自の出力ストリーム
MyOutputStream
を使用します。
以下の例は、ファイルストリームを継続的に読み取る方法を示しています(UNIX
tail
コマンドに似ています)。
from("stream:file?fileName=/server/logs/server.log&scanStream=true&scanStreamDelay=1000").to("bean:logService?method=parseLogLine");
from("stream:file?fileName=/server/logs/server.log&scanStream=true&scanStreamDelay=1000").to("bean:logService?method=parseLogLine");
注記
scanStream
と retry
の組み合わせを使用する場合の 1 つは、ファイルが再開かれ、scanStreamDelay
の反復ごとにスキャンされることです。NIO2 が利用可能になるまで、ファイルがいつ削除または再作成されるかを確実に検出することはできません。