1
0
如果你从Python风格的角度来看DAG,缩进会引发一些思考。
首先,试着用
现在,如果某个代码正在执行,那么这可能与intendation有关。 功能分析 这里的凹痕似乎断裂了: def db_login(): 全球db_con 尝试: db_con=psycopg2。连接(“数据库名='db'用户='user'密码='pass'主机='hostname'端口='5439'sslmode='require'”) 除了: 打印(“我无法连接到数据库。”) 打印('连接任务完成:连接到数据库') 返回(db_con) 应该是:
否则,将始终执行最左边的代码。
也:
全球的
在气流的其他方法中,变量不一定可用!要共享连接,请使用例如气流
直接在DAG中调用函数 另外,由于我不知道的原因,你想要执行一些函数 完全不受气流控制 但每一次处决。
此代码将被执行 每次叫DAG的时候 你的日程安排可能会完全不同。 如果您希望此代码用于测试目的,您可能希望将其放在主调用中:
即使您这样做了,关闭操作也仅在此工作流中可用,而在DAG中不可用。没有关闭连接的任务。
因为你正在使用
TL/DR: 消除所有缩进错误,这样如果纯粹用Python调用文件,就不会执行任何代码。 编辑 这也意味着没有函数调用在任务或def之外。这条线
将被执行,因为它不是任务或def的一部分。它必须被移除。既然函数调用是任务的一部分,那么它就应该可以工作了。
因为这个函数是Python函数,所以应该使用
|
Omer · Apache气流分布式处理 7 年前 |
Dhruv Kapur · 部署如何与气流协同工作? 7 年前 |
Kush Patel · 无论下游发生什么情况,气流任务都会运行 7 年前 |