【发布时间】:2021-02-10 05:39:56
【问题描述】:
我有一个报告应用程序,它使用 Celery 每天处理数千个工作。每个报告类型都有一个 Python 模块,用于封装所有作业步骤。作业采用客户特定的参数,通常在几分钟内完成。目前,作业由客户在创建新报告或请求刷新现有报告时按需触发。
现在,我想添加计划,这样作业每天都会运行,并且报告会自动刷新。我知道 Airflow 在任务编排和调度方面大放异彩。我也喜欢将我的工作表达为 DAG 并从任务重试中受益的想法。我可以看到如何使用 Airflow 运行预定的批处理作业,但我不确定我的用例。
如果我将我的工作表达为 Airflow DAG,我仍然需要为每个客户参数化运行它们。这意味着,如果客户创建一个新报告,我将需要有一种方法来触发具有客户特定配置的 DAG。通过预定的执行,我将需要枚举所有客户并为每个客户创建一个参数化的(子)DAG。我的理解这应该是可能的,因为 Airflow 支持动态创建的 DAG,但是,我不确定这是否是使用 Airflow 的有效且正确的方法。
我想知道是否考虑过在与我类似的场景中使用 Airflow。
【问题讨论】: