我有一个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)
)
这可能吗?
答案 0 :(得分:3)
根据当前设计编号。
任务是DAG的一部分。每个DAG运行都会创建一个任务实例。
这是为了保持框架的内务管理简单
答案 1 :(得分:3)
您可以随时使用partial
执行某些操作,然后将其分配给2个不同的dag:
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)