我们有一个前端服务器,它直接使用dagapi(DagBag()
,get_dag()
,然后dag_run()
)执行dags
dag运行良好,问题是,我们无法找到一种方法来执行具有特定参数的dag。在
最接近的解决方案是使用变量API,它使用set()
和get()
方法,但这些变量是全局的,在处理可能使用相同变量名的并发操作时可能会发生冲突。在
我们如何运行dag并设置可用于其执行的参数?我们主要使用的是Python。在
编辑1:
我们的程序是一个pythondjango前端服务器。所以,我们用气流通过另一个Python程序。这意味着我们通过Python触发dag,因此使用DagBag.get_dag()
从气流服务中检索信息。run_dag()
无法传递直接参数
如果使用trigger_dag_run(通过命令行或从另一个dag)来触发dag,则可以将任何json作为有效负载传递。在
另一个选择是将参数列表存储在文件中,并将文件位置存储为变量。然后,DAG可以将这个文件位置传递给python操作符,然后操作符可以处理读取该文件并解析其中的参数。在
如果这两个解决方案都不适用于您的用例,那么提供关于您的dag的更多细节和类型的参数可能会有所帮助。在
相关问题 更多 >
编程相关推荐