LoginSignup
1
1

More than 5 years have passed since last update.

digdagでエラーになった処理を、その時間で再実行するには

Posted at

digdagでエラーになった処理を、その時間で再実行するには

今の時間を取得して実行する処理を、digdagで毎日回していますが、時々エラーになって落ちる時があります。
その再実行の時にshell側でdateや、python側でdatetime.nowを使っていたため、うまく再実行できませんでした。
そして意外とはまってしまったのでメモ。

結論

環境変数の${settion_time}を引数に渡してやるよい

digファイルの例

test.dig
timezone: Asia/Tokyo

+now_in_digdag:
  echo>: start ${session_time}

+now_in_shell:
  sh>: date

実行結果

1回目の実行

2019-03-16 22:03:38 +0900 [INFO] (XNIO-1 task-15): Starting a new session project id=1 workflow name=test session_time=2019-03-16T22:03:38+09:00
2019-03-16 22:03:38 +0900 [INFO] (0081@[0:time_test]+test+now_in_digdag): echo>: start 2019-03-16T22:03:38+09:00
start 2019-03-16T22:03:38+09:00
2019-03-16 22:03:38 +0900 [INFO] (0081@[0:time_test]+test+now_in_shell): sh>: date
2019年 3月16日 土曜日 22時03分38秒 JST

同じセッションで2日目の実行

2019-03-16 22:03:49 +0900 [INFO] (XNIO-1 task-8): Starting a new session project id=1 workflow name=test session_time=2019-03-16T22:03:38+09:00
2019-03-16 22:03:49 +0900 [INFO] (0081@[0:time_test]+test+now_in_digdag): echo>: start 2019-03-16T22:03:38+09:00
start 2019-03-16T22:03:38+09:00 ←!!セッションIDは、そのセッションが最初に実行された時間のまま!!
2019-03-16 22:03:49 +0900 [INFO] (0081@[0:time_test]+test+now_in_shell): sh>: date
2019年 3月16日 土曜日 22時03分49秒 JST
1
1
4

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
1