257.4. Camel からデータを取得


Camel ルートからデータフローにサブスクライブするには、以下のスニペットのように、エクスチェンジを名前付きストリームにリダイレクトする必要があります。

from("timer:clock")
.setBody().header(Exchange.TIMER_COUNTER)
.to("reactive-streams:numbers");
Copy to Clipboard

ルートは XML DSL を使用して作成することもできます。

この例では、無制限の数字のストリームが、名前番号に関連付けられます。このストリームは、CamelReactiveStreams ユーティリティークラスを使用してアクセスできます。

CamelReactiveStreamsService camel = CamelReactiveStreams.get(context);

// Getting a stream of exchanges
Publisher<Exchange> exchanges = camel.fromStream("numbers");

// Getting a stream of Integers (using Camel standard conversion system)
Publisher<Integer> numbers = camel.fromStream("numbers", Integer.class);
Copy to Clipboard

このストリームは、リアクティブストリームと互換性のあるライブラリーと簡単に使用できます。以下は、RxJava 2 で使用する方法の例です(ただし、リアクティブフレームワークを使用してイベントを処理することもできます)。

Flowable.fromPublisher(integers)
    .doOnNext(System.out::println)
    .subscribe();
Copy to Clipboard

この例では、Camel によって生成されたすべての数字を System.out に出力します。

257.4.1. direct API を使用した Camel からデータを取得

(Camel DSL を全く使用せずに)リアクティブフレームワークの機能構成を使用して処理フロー全体を定義することを希望する場合は、Camel URI を使用してストリームを定義することもできます。

CamelReactiveStreamsService camel = CamelReactiveStreams.get(context);

// Get a stream from all the files in a directory
Publisher<String> files = camel.from("file:folder", String.class);

// Use the stream in RxJava2
Flowable.fromPublisher(files)
    .doOnNext(System.out::println)
    .subscribe();
Copy to Clipboard
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat