1 回答

TA貢獻1921條經驗 獲得超9個贊
參考官方文檔:
調度程序會在開始日期之后的一個 schedule_interval 運行您的作業。
如果您的 start_date 是 2020-01-01 并且 schedule_interval 是@daily,則第一次運行將在 2020-01-02 上創建,即在您的開始日期過后。
為了在每天的特定時間(包括今天)運行 DAG,start_date
需要將時間設置為過去的時間,并且schedule_interval
需要具有所需的時間格式cron
。正確設置昨天的日期時間非常重要,否則觸發器將不起作用。
在這種情況下,我們應該將 設置start_date
為上一周的星期二,即:(2020, 8, 4)
。由于每周運行一次,因此從開始日期起應該有 1 周的間隔。
讓我們看一下以下示例,它展示了如何在美國東部標準時間周二至周六凌晨 04:00 運行作業:
from datetime import datetime, timedelta
from airflow import models
import pendulum
from airflow.operators import bash_operator
local_tz = pendulum.timezone("America/New_York")
default_dag_args = {
? ? 'start_date': datetime(2020, 8, 4, 4, tzinfo=local_tz),
? ? 'retries': 0,
}
with models.DAG(
? ? ? ? 'Test',
? ? ? ? default_args=default_dag_args,
? ? ? ? schedule_interval='00 04 * * 2-6') as dag:
? ? ? ?# DAG code
? ? print_dag_run_conf = bash_operator.BashOperator(
? ? ? ? task_id='print_dag_run_conf', bash_command='echo {{ dag_run.id }}')
我建議您查看start_date 文檔的處理方式。
添加回答
舉報