digdag

Digdag UIのPAUSE/RESUME機能 & Digdag CLIでのenable/disable機能の注意点

概要

スケジュール実行が設定されたワークフローを一時停止した後に一時停止を解除すると、今まで実行がスキップされていた分のセッションが一気に実行される。
この挙動が嫌な場合は、一時停止を解除する直前に、digdag rescheduleを実行する必要がある。

再現手順

以下の1分毎にhogeと出力するだけのワークフローをサーバーにpush。

timezone: Asia/Tokyo

schedule:
  minutes_interval>: 1

+echo:
  echo>: hoge

Digdag UIのPAUSEボタンを押して、ワークフローのスケジュール実行を一時停止する。

数分間待つ。

RESUMEボタンを押して、一時停止を解除する。

PAUSE中のセッションが一気に動き出す!!

2017-08-04 11:16:53 +0900 [INFO] (scheduler-0): Starting a new session project id=1 workflow name=workflow session_time=2017-08-04T11:13:00+09:00
2017-08-04 11:16:53 +0900 [INFO] (0095@[0:sample]+workflow+echo): echo>: hoge
hoge
2017-08-04 11:16:54 +0900 [INFO] (scheduler-0): Starting a new session project id=1 workflow name=workflow session_time=2017-08-04T11:14:00+09:00
2017-08-04 11:16:54 +0900 [INFO] (0095@[0:sample]+workflow+echo): echo>: hoge
hoge
2017-08-04 11:16:55 +0900 [INFO] (scheduler-0): Starting a new session project id=1 workflow name=workflow session_time=2017-08-04T11:15:00+09:00
2017-08-04 11:16:55 +0900 [INFO] (0095@[0:sample]+workflow+echo): echo>: hoge
hoge
2017-08-04 11:16:56 +0900 [INFO] (scheduler-0): Starting a new session project id=1 workflow name=workflow session_time=2017-08-04T11:16:00+09:00
2017-08-04 11:16:56 +0900 [INFO] (0095@[0:sample]+workflow+echo): echo>: hoge
hoge
2017-08-04 11:17:00 +0900 [INFO] (scheduler-0): Starting a new session project id=1 workflow name=workflow session_time=2017-08-04T11:17:00+09:00
2017-08-04 11:17:00 +0900 [INFO] (0095@[0:sample]+workflow+echo): echo>: hoge
hoge

なお、Digdag CLIでdigdag disabledigdag enableを行った時も同様の挙動をします。

回避方法

RESUMEボタンを押す直前にDigdag CLIから以下のコマンドを打つと、この挙動を抑制できます。

digdag reschedule <schedule id>  --skip-to "`date '+%F %T %z'`"

なお、現時点ではこの操作はDigdag UIから行うことができません。