python - 如何将 airflow dag 配置为每天两次 运行
python - How to configure airflow dag to run twice daily
通过我最近的研究,我开始意识到气流的 schedule_interval
有一些怪癖,我已经尽力尝试解释它如何影响我正在做的事情,但是还没有完全解决。
我正在使用这些默认参数:
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2019, 1, 12),
'email': ['email@domain.com'],
'email_on_failure': True,
'email_on_retry': False,
'retries': 0,
'retry_delay': timedelta(minutes=5),
'schedule_interval': '0 0,12 * * *'
}
我希望 DAG 在午夜和中午 运行。
目前午夜只有 运行 秒,我不明白为什么。我 运行 在 Google Cloud Composer 中使用它,如果有任何不同的话。
*编辑 - 修正错别字
我会使用“每十二小时”的 cron 表达式,而不是“在 0 小时和 12 小时”。您可能已经读到,Airflow 的工作原理是创建间隔并在每个间隔结束时安排任务。通过将 cron 表达式描述的时间段添加到 Dag 的开始日期来创建间隔。
试试 'schedule_interval': '0 */12 * * *'
,它会和你的表达式一样工作,因为你的开始日期是午夜。
通过我最近的研究,我开始意识到气流的 schedule_interval
有一些怪癖,我已经尽力尝试解释它如何影响我正在做的事情,但是还没有完全解决。
我正在使用这些默认参数:
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2019, 1, 12),
'email': ['email@domain.com'],
'email_on_failure': True,
'email_on_retry': False,
'retries': 0,
'retry_delay': timedelta(minutes=5),
'schedule_interval': '0 0,12 * * *'
}
我希望 DAG 在午夜和中午 运行。
目前午夜只有 运行 秒,我不明白为什么。我 运行 在 Google Cloud Composer 中使用它,如果有任何不同的话。
*编辑 - 修正错别字
我会使用“每十二小时”的 cron 表达式,而不是“在 0 小时和 12 小时”。您可能已经读到,Airflow 的工作原理是创建间隔并在每个间隔结束时安排任务。通过将 cron 表达式描述的时间段添加到 Dag 的开始日期来创建间隔。
试试 'schedule_interval': '0 */12 * * *'
,它会和你的表达式一样工作,因为你的开始日期是午夜。