たそらぼ

日頃思ったこととかメモとか。

digdagのスケジュール機能を試す

digdagのスケジュール機能を簡易的に試した手順と結果のまとめです。

digdagのスケジューリング機能

分間隔から月間隔で、定義したワークフローを定期実行されることが可能です。(Scheduling workflow — Digdag 0.9.39 documentation
今回は定期実行が確認しやすいよう、5分間隔の設定をしてみます。

設定手順

digdag initで生成されるdigファイルのタスクを、5分間隔で繰り返し実行させます。

digdag init testdag

これでサンプルのdigファイルが生成されます。
5分間隔で実行するよう、digファイルを改造します。

timezone: UTC

#ココを追記した。
schedule:
  minutes_interval>: 5

+setup:
  echo>: start ${session_time}

+disp_current_date:
  echo>: ${moment(session_time).utc().format('YYYY-MM-DD HH:mm:ss Z')}

+repeat:
  for_each>:
    order: [first, second, third]
    animal: [dog, cat]
  _do:
    echo>: ${order} ${animal}
  _parallel: true

+teardown:
  echo>: finish ${session_time}

実行と関連コマンド

実行時は作成したdigファイルがあるディレクトリで、scheduleコマンドを走らせます。

didgag schedule

なお、実行前にはcheckコマンドで意図通りのスケジュールができているか確認するのが良いです。

didgag check

結果

scheduleコマンドで実施しておきます。
f:id:tasotasoso:20190801154504p:plain
15:00スタートで、本当に5分ごとに動くのか確認していきます。

  • 15:05

f:id:tasotasoso:20190801154643p:plain

  • 15:10

f:id:tasotasoso:20190801154654p:plain

  • 15:15

f:id:tasotasoso:20190801154706p:plain

  • 15:20

f:id:tasotasoso:20190801154718p:plain

うん、良い感じで動いてくれてますね!