为python列表中存在的气流任务创建动态工作流程
我有以下方式的列表 -
[['x_api','y_api',....],['z_api','p_api',...],[....],[。 ..] ....]
在这里,每个API名称对应于Pythonoperator。
在气流中,我想创建任务依赖项,以便从起始虚拟任务中,我应该对主列表中的每个列表中的每个列表进行并行任务,并且列表列表中的操作员应按顺序执行:
我该怎么做?感谢您的任何帮助!
现有代码:
args = {
'depends_on_past': False,
'start_date': datetime.now(),
'email': '',
'email_on_failure': False,
'email_on_retry': False,
'retries': 3,
'retry_delay': timedelta(minutes=1)
}
dag = DAG(dag_id, default_args=args, schedule_interval=None)
with dag:
tasks = []
tmp, tmp2 = set(), set()
Start = DummyOperator(
task_id='Start',
dag=dag
)
End = DummyOperator(
task_id='End',
dag=dag
)
for i in dags:
for j in i:
if 'APIs' in list(i.keys()):
for l in i['APIs']:
tab = DummyOperator(
task_id=l['api'] + "_API",
dag=dag
)
tmp.add(tab)
elif 'tables' in list(i.keys()):
for k in i['tables']:
tab2 = DummyOperator(
task_id=k['table'] + "_API",
dag=dag
)
tmp2.add(tab2)
tasks.append(list(tmp))
tasks.append(list(tmp2))
for task in tasks:
for op in range(0, len(task)-1):
Start.set_downstream(task[op])
task[op].set_downstream(task[op+1])
task[op+1].set_downstream(End)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是我想到的解决方案 -
This was the solution I came up with -