第176章 Timer


タイマーコンポーネント

timer: コンポーネントは、タイマーが実行されるとメッセージエクスチェンジを生成するために使用されます。このエンドポイントからイベントのみを消費できます。

URI 形式

timer:name[?options]
Copy to Clipboard Toggle word wrap
ここでの nameTimer オブジェクトの名前で、これはエンドポイント間で作成および共有されます。したがって、すべてのタイマーエンドポイントに同じ名前を使用する場合は、1 つの Timer オブジェクトとスレッドのみが使用されます。
URI にクエリーオプションは ?option=value&option=value&.. の形式で追加できます。
注記: 生成されたエクスチェンジの IN ボディーは null です。したがって、exchange.getIn().getBody()null を返します。
高度なスケジューラー
より詳細スケジューリングをサポートする Quartz コンポーネントも参照してください。
人間が分かりやすい形式で時間を指定
Camel 2.3 以降では、人間が分かりやすい構文 で時間を指定できます。

オプション

Expand
名前 デフォルト値 説明
time null java.util.Date最初 のイベントを生成する必要があります。URI を使用する場合、パターンは yyyy-MM-dd HH:mm:ss または yyyy-MM-dd'T'HH:mm:ss です。
pattern null URI 構文を使用して time オプションの設定に使用するカスタムの Date パターンを指定できます。
period 1000 0 を超える場合は、期間 (ミリ秒単位)ごとに定期的なイベントを生成します。
delay 1000 最初のイベントが生成されるまで待機する時間(ミリ秒単位)。time オプションと併用しないでください。Camel 2.17 以降 では、負の遅延を指定できます。このシナリオでは、タイマーがイベントをできるだけ早く生成し、実行します。
fixedRate false イベントは、指定された期間で区切られた、約一定間隔で行われます。
daemon true タイマーエンドポイントに関連付けられたスレッドがデーモンとして実行されるかどうかを指定します。
repeatCount 0 camel 2.8: 実行の最大数を指定します。そのため、これを 1 に設定するとタイマーは一度だけ実行されます。これを 5 に設定した場合、5 回だけ実行されます。0 または負の値を設定すると、無制限に実行されます。

エクスチェンジプロパティー

タイマーが実行されると、以下の情報をプロパティーとして Exchange に追加します。
Expand
名前 タイプ 説明
Exchange.TIMER_NAME 文字列 name オプションの値。
Exchange.TIMER_TIME 日付 time オプションの値。
Exchange.TIMER_PERIOD long period オプションの値。
Exchange.TIMER_FIRED_TIME 日付 コンシューマーが実行した時間。
Exchange.TIMER_COUNTER Long Camel 2.8: 現在の fire カウンター。1 から始まります。

メッセージヘッダー

タイマーが実行されると、以下の情報をヘッダーとして IN メッセージに追加します。
Expand
名前 タイプ 説明
Exchange.TIMER_FIRED_TIME java.util.Date コンシューマーが実行される時間

60 秒ごとにイベントを生成するルートを設定するには、以下を実行します。
   from("timer://foo?fixedRate=true&period=60000").to("bean:myBean?method=someMethodName");
Copy to Clipboard Toggle word wrap
ヒント
60000 の代わりに、より読みやすい( period=60s )を指定できます。
上記のルートはイベントを生成し、JNDI や Spring などの レジストリーmyBean という Bean で someMethodName メソッドを呼び出します。
Spring DSL のルートは以下のようになります。
<route>
    <from uri="timer://foo?fixedRate=true&amp;period=60000"/>
    <to uri="bean:myBean?method=someMethodName"/>
</route>
Copy to Clipboard Toggle word wrap

できるだけ早く実行する

Camel 2.17: できるだけ早く Camel ルートでメッセージを生成することができます。負の遅延を使用できます。
<route>
    <from uri="timer://foo?delay=-1"/>
    <to uri="bean:myBean?method=someMethodName"/>
</route>
Copy to Clipboard Toggle word wrap
このようにして、タイマーは即座にメッセージを実行します。repeatCount パラメーターを負の遅延と共に指定して、固定数に達した後にメッセージの実行を停止することもできます。repeatCount を指定しないと、ルートが停止するまでタイマーがメッセージを実行します。

1 度だけ発行

Camel 2.8 から利用可能
ルートの起動時になど、Apache Camel ルートでメッセージを 1 度だけ実行することをお勧めします。これを行うには、以下のように repeatCount オプションを使用します。
<route>
    <from uri="timer://foo?repeatCount=1"/>
    <to uri="bean:myBean?method=someMethodName"/>
</route>
Copy to Clipboard Toggle word wrap
以下も参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat