Airflow スケジュールとデプロイタイミングについて

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にジョブが動作する見込み