可以为每个 Airflow DAG 设置不同的执行器吗?
Possible to set different executor for each Airflow DAG?
我希望将另一个 DAG 添加到现有的 Airflow 服务器。服务器当前正在使用 LocalExecutor,但我可能希望我的 DAG 使用 CeleryExecutor。好像配置文件airflow.cfg
只允许一个执行者:
# The executor class that airflow should use. Choices include
# SequentialExecutor, LocalExecutor, CeleryExecutor
executor = LocalExecutor
是否可以配置 Airflow,使现有 DAG 可以继续使用 LocalExecutor 而我的新 DAG 可以使用 CeleryExecutor 或自定义执行器 class?我没有找到任何人这样做的例子,也没有在 Airflow 文档中找到任何东西。
似乎调度器只会启动一个执行器实例。
如果您的 DAG 中有一个 SubDAG,您可以将特定的执行器传递给该 SubDagOperator。例如,要使用 SequentialExecutor:
bar_subdag = SubDagOperator(
task_id='bar',
subdag=my_subdag('foo', 'bar', default_args),
default_args=default_args,
dag=foo_dag,
executor=SequentialExecutor()
)
这是在 1.8 上,不确定 1.9 是否不同。
我希望将另一个 DAG 添加到现有的 Airflow 服务器。服务器当前正在使用 LocalExecutor,但我可能希望我的 DAG 使用 CeleryExecutor。好像配置文件airflow.cfg
只允许一个执行者:
# The executor class that airflow should use. Choices include
# SequentialExecutor, LocalExecutor, CeleryExecutor
executor = LocalExecutor
是否可以配置 Airflow,使现有 DAG 可以继续使用 LocalExecutor 而我的新 DAG 可以使用 CeleryExecutor 或自定义执行器 class?我没有找到任何人这样做的例子,也没有在 Airflow 文档中找到任何东西。
似乎调度器只会启动一个执行器实例。
如果您的 DAG 中有一个 SubDAG,您可以将特定的执行器传递给该 SubDagOperator。例如,要使用 SequentialExecutor:
bar_subdag = SubDagOperator(
task_id='bar',
subdag=my_subdag('foo', 'bar', default_args),
default_args=default_args,
dag=foo_dag,
executor=SequentialExecutor()
)
这是在 1.8 上,不确定 1.9 是否不同。