是否可以在气流中的多个 DAGS 中使用单个任务?
Is it possible to use a single task in multiple DAGS in airflow?
我有一个 task_a,我想在 DAG_1 和 DAG_2 中使用。这在气流中可能吗?
task_a = SomeOperator(
task_id='some_id',
bash_command='some_command',
#instead of just
dag= DAG_1 # I want to assign this task to multiple dags
#dag=assign_multiple_dags_here(DAG_1 and DAG_2)
)
这可能吗?
根据当前设计编号。
任务是 DAG 的一部分。每个 DAG 运行 创建一个任务实例。
这是为了让框架的内务管理变得简单
你总是可以用 partial
做一些事情,然后将它分配给 2 个不同的 dags:
from functools import partial
task_template = partial(SomeOperator, some_id='id', some_command='cmd')
task_template(dag=dag1)
task_template(dag=dag2)
您也可以只创建一个函数来执行此操作:
def create_task(dag):
return SomeOperator(some_id='id', some_command='cmd', dag=dag)
for d in (dag1, dag2):
create_task(d)
我有一个 task_a,我想在 DAG_1 和 DAG_2 中使用。这在气流中可能吗?
task_a = SomeOperator(
task_id='some_id',
bash_command='some_command',
#instead of just
dag= DAG_1 # I want to assign this task to multiple dags
#dag=assign_multiple_dags_here(DAG_1 and DAG_2)
)
这可能吗?
根据当前设计编号。
任务是 DAG 的一部分。每个 DAG 运行 创建一个任务实例。
这是为了让框架的内务管理变得简单
你总是可以用 partial
做一些事情,然后将它分配给 2 个不同的 dags:
from functools import partial
task_template = partial(SomeOperator, some_id='id', some_command='cmd')
task_template(dag=dag1)
task_template(dag=dag2)
您也可以只创建一个函数来执行此操作:
def create_task(dag):
return SomeOperator(some_id='id', some_command='cmd', dag=dag)
for d in (dag1, dag2):
create_task(d)