【发布时间】:2021-02-10 10:10:39
【问题描述】:
我了解 Airflow DAG 运行具有 @hourly、@daily 等预设。但是,我有一个有趣的用例,我想在单个 DAG 中以不同的时间表执行多个任务。
例如,
- 任务 1 - 每个月的第一天
- 任务 2 - 每月的每一秒 中午 12 点
.. 等等。这可能吗?这些是非常简单的任务(例如 API 调用),无需处理结果,因此我希望避免为每个任务创建多个 DAG。
【问题讨论】:
我了解 Airflow DAG 运行具有 @hourly、@daily 等预设。但是,我有一个有趣的用例,我想在单个 DAG 中以不同的时间表执行多个任务。
例如,
.. 等等。这可能吗?这些是非常简单的任务(例如 API 调用),无需处理结果,因此我希望避免为每个任务创建多个 DAG。
【问题讨论】:
您可以通过使用 PythonOperator 和 croniter 包来解决此问题。
DAG 可以运行,即@daily,然后 PythonOperator 调用一个函数,该函数首先检查某个特定于任务的 cron 表达式是否与 execution_date 匹配,然后执行代码。
【讨论】: