1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CronWorkflowの動作検証2

Posted at

はじめに

CronWorkflowのスケジュール実行で前回Workflowが次の実行予定時刻までに完了しなかった場合の動作に関して検証する。
検証では、複数のマニフェストの設定について検証する。

なお、Cronworkflowはspec.workflowSpecでWorkflowTemplateを利用する事を前提とする。

検証方法

以下4つの設定で動作検証する。

項目 設定方法
設定① CronworkflowのconcurrencyPolicyを"Forbid"で指定
設定② CronworkflowのconcurrencyPolicyを"Forbid"で指定し、StartingDeadLineSecondsの秒数を指定
設定③ CronworkflowのconcurrencyPolicyを"Allow"で指定
設定④ CronworkflowのconcurrencyPolicyを"Allow"で指定する。また、参照するWorkflowTemplateでsynchronizationのmutexを設定する事で同一WorkflowTemlateを同時実行する事を防ぐ

CronWorkflowは、1分周期でスケジュール実行する設定とする。参照するWorkflowTemplateは1分間sleepするようプログラムする。このように設定する事で前回Workflowが次の実行予定時刻まで動作し続ける状況を作る。

検証結果

設定ごとの動作検証結果を下表に示す。

項目 動作検証結果
設定① 今回実行予定のworkflowをスキップする
設定② 前回workflowが完了した後に、今回実行予定のworkflowを数秒遅れで開始する
設定③ 前回workflowの完了を待たずに、今回workflowを開始する
設定④ 前回workflowが完了した後に、今回実行予定のworkflowを数秒遅れで開始する

設定②と設定④の結果は同一であるが、startingDeadLineSecondsは指定する秒数内の遅延のみ許容する。このため、前回workflowの完了タイミングによらず必ずスケジュールしていたworkflowを実行したい場合は設定④を採用する必要がある。

参照資料

Argo Workflows Webサイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?