我怎样才能获得execution_date
参数在 dag 之外?
execution_min = "{{execution_date.strftime('%M') }}"
if execution_min == '00':
logging.info('**** ' + "YES, It's 00")
final_task = DummyOperator(
task_id='task_y00',
...
dag=dag
)
else:
logging.info('**** ' + "NOPE!!!")
final_task = DummyOperator(
task_id='task_n00',
...
dag=dag
)
我想动态设置任务流execution_date
(特别是分钟)
但 Jinja 模板无法使用template_fields = ['execution_date']
是否有任何解决方案可以从运算符外部(= DAG 本身)获取执行参数???
执行日期特定于 DagRun。 DagRun 信息在 DAG 定义文件中不可用(它在 Operator 的模板字段中可用,因为这些信息在运行时通过 Jinja 进行解析)。即使 DAG 未运行,调度程序、Web 服务器和工作人员也会频繁解析 DAG 定义文件。这就是为什么在实际的 DagRun 之外无法访问执行日期等内容。
此外,无法向运行时运行的 DAG 添加/删除任务。您可以拥有动态 dags,其结构在运行之前就已决定(即,将文件解析为 DAG 结构),但您无法添加任务或决定 DAG 在运行时的外观。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)