Python: 3.8.10
Airflow: 2.7.2
OS: Ubuntu20
結論: 無難にジョブをスケジュールどおり実行させるためには、start_date=本日とする
※日次スケジュールの場合、Last RunやNext Runは 実際値の前日が表示される
※手動実行の場合、Last Runは正しい日時
==============================
-- 1. ジョブ開始時刻前にデプロイしてunpauseの場合 (start_date=前日)
本日 = 2023/12/2
schedule="0 2 * * *",
start_date=datetime(2023, 12, 1),
is_paused_upon_creation=True,
catchup=False,
デプロイ時刻 = 01:57 UTC
→ デプロイ後、unpauseに設定してもジョブは開始しない
2時になったらジョブが動作する
==============================
-- 2. ジョブ開始時刻後にデプロイしてunpauseの場合 (start_date=前日)
本日 = 2023/12/2
schedule="0 2 * * *",
start_date=datetime(2023, 12, 1),
is_paused_upon_creation=True,
catchup=False,
デプロイ時刻 = 02:10 UTC
→ デプロイ後、unpauseに設定するとジョブが開始する★
==============================
-- 3. ジョブ開始時刻前にデプロイして手動実行の場合 (start_date=前日)
本日 = 2023/12/2
schedule="45 2 * * *",
start_date=datetime(2023, 12, 1),
is_paused_upon_creation=True,
catchup=False,
デプロイ時刻 = 02:32 UTC
→ デプロイ後、手動実行するとunpauseになる。スケジュール実行分もスケジュールどおり実行される。
==============================
-- 4. ジョブ開始時刻後にデプロイして手動実行の場合 (start_date=前日)
本日 = 2023/12/2
schedule="0 2 * * *",
start_date=datetime(2023, 12, 1),
is_paused_upon_creation=True,
catchup=False,
デプロイ時刻 = 02:17 UTC
→ デプロイ後、手動実行するとunpauseになるため、スケジュール実行分と手動実行分の順に2つのジョブが流れる。★
==============================
-- 5. ジョブ開始時刻前にデプロイしてunpauseの場合 (start_date=本日)
本日 = 2023/12/2
schedule="10 3 * * *",
start_date=datetime(2023, 12, 2),
is_paused_upon_creation=True,
catchup=False,
デプロイ時刻 = 03:02 UTC
→ デプロイ後、unpauseに設定してもジョブは開始しない
Next Runは12/2 3:10となっているので、12/3 3:10にジョブが動作する見込み
==============================
-- 6. ジョブ開始時刻後にデプロイしてunpauseの場合 (start_date=本日)
本日 = 2023/12/2
schedule="0 2 * * *",
start_date=datetime(2023, 12, 2),
is_paused_upon_creation=True,
catchup=False,
デプロイ時刻 = 02:58 UTC
→ デプロイ後、unpauseに設定してもジョブは開始しない
Next Runは12/2 2:00となっているので、12/3 2:00にジョブが動作する見込み