11.3. Polling Consumer
概要
図11.2「Polling Consumer パターン」 に記載されている ポーリングコンシューマー パターンは、Apache Camel コンポーネントでコンシューマーエンドポイントを実装するためのパターンです。そのため、Apache Camel でカスタムコンポーネントを開発する必要があるプログラマーにのみ関係があります。既存のコンポーネントには、すでに何らかのコンシューマー実装パターンが組み込まれています。
このパターンに準拠するコンシューマーは、監視対象のリソースから利用可能な場合にのみ新規のエクスチェンジオブジェクトを返すポーリングメソッド receive()
、receive(long timeout)
、および receiveNoWait()
を公開します。ポーリングコンシューマーの実装は、ポーリングを実行するために独自にスレッドプールを提供する必要があります。
この実装パターンの詳細は、「コンシューマーパターンおよびスレッド」、41章Consumer インターフェース、および 「コンシューマーテンプレートの使用」 を参照してください。
図11.2 Polling Consumer パターン
スケジュールされたポーリングコンシューマー
Apache Camel コンシューマーエンドポイントの多くは、スケジュールされたポーリングのパターンを使用してルートの開始時にメッセージを受信します。つまり、そのエンドポイントはイベント駆動型コンシューマーのインターフェースを実装しているように見えますが、内部的にはスケジュールされたポーリングを使用して、エンドポイントに受信メッセージを提供するリソースを監視しています。
このパターンの実装方法は、「Consumer インターフェースの実装」 を参照してください。
Quartz コンポーネント
Quartz コンポーネントを使用することで、Quartz エンタープライズスケジューラーを使用してスケジュールされたメッセージの配信を提供できます。詳細は 『Apache Camel Component Reference Guide』の「Quartz」および「Quartz Component」を参照してください。