11.3. Polling Consumer

概要

図11.2「Polling Consumer パターン」 に示される Polling Consumer パターンは、Apache Camel コンポーネントでコンシューマーエンドポイントを実装するためのパターンの 1 つであり、そのため Apache Camel でカスタムコンポーネントを開発する必要があるプログラマーにのみ関係があります。既存のコンポーネントには、すでに何らかのコンシューマー実装パターンが組み込まれています。

このパターンに準拠するコンシューマーは、監視対象のリソースから利用可能な場合にのみ新規のエクスチェンジオブジェクトを返すポーリングメソッド receive()receive(long timeout)、および receiveNoWait() を公開します。ポーリングコンシューマーの実装は、ポーリングを実行するために独自にスレッドプールを提供する必要があります。

この実装パターンの詳細については、「コンシューマーパターンおよびスレッド」41章Consumer インターフェイス および 「コンシューマーテンプレートの使用」 を参照してください。

図11.2 Polling Consumer パターン

Polling Consumer パターン

スケジュールされたポーリングコンシューマー

Apache Camel コンシューマーエンドポイントの多くは、スケジュールされたポーリングのパターンを使用してルートの開始時にメッセージを受信します。つまり、そのエンドポイントはイベント駆動型コンシューマーのインターフェイスを実装しているように見えますが、内部的にはスケジュールされたポーリングを使用して、エンドポイントに受信メッセージを提供するリソースを監視しています。

このパターンの実装方法についての詳細は、「Consumer インターフェイスの実装」 を参照してください。

Quartz コンポーネント

Quartz コンポーネントを使用することで、Quartz エンタープライズスケジューラーを使用してスケジュールされたメッセージの配信を提供できます。詳細は、Apache Camel コンポーネントリファレンスガイドQuartz および Quartz Component を参照してください。