39.12. QuartzScheduledPollConsumerScheduler の使用
Quartz コンポーネントは Polling Consumer スケジューラーを提供します。これにより、File や FTP コンシューマーなどのコンシューマーのポーリングに cron ベースのスケジューリングを使用できます。
たとえば、cron ベースの式を使用して 2 秒間隔でファイルをポーリングするには、Camel ルートを以下のように定義できます。
from("file:inbox?scheduler=quartz&scheduler.cron=0/2+*+*+*+*+?")
.to("bean:process");
from("file:inbox?scheduler=quartz&scheduler.cron=0/2+*+*+*+*+?")
.to("bean:process");
scheduler=quartz を定義して、Quartz ベースのスケジューラーを使用するように Camel に指示することに注意してください。次に、scheduler.xxx オプションを使用してスケジューラーを設定します。Quartz スケジューラーでは、cron オプションを設定する必要があります。
以下のオプションがサポートされます。
| パラメーター | デフォルト | タイプ | 説明 |
|---|---|---|---|
|
|
|
| カスタム Quartz スケジューラーを使用するには、以下を行います。設定しない場合は、コンポーネントから共有スケジューラーが使用されます。 |
|
|
|
| 必須: ポーリングをトリガーするために cron 式を定義します。 |
|
|
|
| トリガー ID を指定します。指定しない場合は、UUID が生成され、使用されます。 |
|
|
|
| トリガーグループを指定します。 |
|
|
|
| CRON トリガーに使用するタイムゾーン。 |
エンドポイント URI からこれらのオプションを設定するには、スケジューラー の接頭辞を付ける必要があります。
たとえば、トリガー ID およびグループを設定するには、以下を実行します。
from("file:inbox?scheduler=quartz&scheduler.cron=0/2+*+*+*+*+?&scheduler.triggerId=myId&scheduler.triggerGroup=myGroup")
.to("bean:process");
from("file:inbox?scheduler=quartz&scheduler.cron=0/2+*+*+*+*+?&scheduler.triggerId=myId&scheduler.triggerGroup=myGroup")
.to("bean:process");
Spring には CRON スケジューラーがあるため、以下を使用することもできます。
from("file:inbox?scheduler=spring&scheduler.cron=0/2+*+*+*+*+?")
.to("bean:process");
from("file:inbox?scheduler=spring&scheduler.cron=0/2+*+*+*+*+?")
.to("bean:process");