8.2.3. cron トレイト
Cron トレイトを使用すると、定期的なタイマー/cron ベースのインテグレーションの動作をカスタマイズできます。
通常、インテグレーションには Pod が常に稼働している必要がありますが、バッチジョブなどの一部の定期的なタスクでは、特定の時間や数分の定期的な遅延でアクティベートする必要があります。このようなタスクで cron トレイトを使用すると、インテグレーションの実行が必要がないときにリソースを節約するため、標準デプロイメントではなく Kubernetes CronJob としてインテグレーションを実現できます。
以下のコンポーネントから開始するインテグレーションは、cron トレイト( タイマー
、cron
、quartz
)によって評価されます。
Kubernetes CronJob を使用するルールは次のとおりです。タイマー
: ピリオドを cron 式として記述できる場合。例:timer:tick?period=60000
. - cron
,quartz
: cron 式に秒数が含まれていない場合(または "seconds" の部分は 0)。例:cron:tab?schedule=0/2$+*+*+*+?
or quartz:trigger?cron=0+0/2+*+*+*+?
.
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
8.2.3.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait cron.[key]=[value] --trait cron.[key2]=[value2] Integration.java
kamel run --trait cron.[key]=[value] --trait cron.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | タイプ | 説明 |
---|---|---|
cron.enabled | bool | トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
cron.schedule | string | インテグレーション全体の CronJob スケジュール。複数のルートが宣言されている場合、このメカニズムが正常に機能するためには同じスケジュールが必要になります。 |
cron.components | string |
スケジュールが Kubernetes によって外部でトリガーされたときに機能するためにカスタマイズする必要がある Camel コンポーネントのコンマ区切りリスト。指定されたコンポーネントごとに、特定のカスタマイザーがアクティベートされます。たとえば、
現在、サポートされているコンポーネントは |
cron.fallback | bool |
インテグレーションを Kubernetes CronJob としてマテリアル化するのではなく、 |
cron.concurrency-policy | string | ジョブの同時実行を処理する方法を指定します。有効な値は Allow、Forbit (デフォルト)、および Replace です。Allow: CronJob の同時実行を許可します。Forbid: 同時実行を禁止し、前の実行が終了していない場合は次の実行をスキップします。Replace: 同時実行をキャンセルし、新しいジョブに置き換えます。 |
cron.auto | bool |
すべてのルートが定期的なコンシューマーから開始される場合(
定期的なコンシューマーすべてに期間が同じで、cron スケジュールとして表現することができます(例: |