Python 3.x 气流测试任务正常工作,但在dag中运行失败

Python 3.x 气流测试任务正常工作,但在dag中运行失败,python-3.x,airflow,Python 3.x,Airflow,我想知道为什么以下命令可以工作: 气流测试[dag_id][task_id]20200421 但是如果我在UI中手动触发dag,同样的任务就会失败 任务本身相当简单,基本上是: cmd='ls'#其他命令 操作系统(cmd) os库是导入的,就像上面所说的,在测试中它确实可以工作,但在运行中它却不能。我的代码是用python编写的,这个特定的dag需要在终端中运行特定的命令 你知道这怎么可能吗 如果你需要更多信息,请在评论中告诉我 这种行为的一个可能原因可能是,您的任务之前在数据库中缓存执行 所

我想知道为什么以下命令可以工作:

气流测试[dag_id][task_id]20200421

但是如果我在UI中手动触发dag,同样的任务就会失败

任务本身相当简单,基本上是:

cmd='ls'#其他命令
操作系统(cmd)

os库是导入的,就像上面所说的,在测试中它确实可以工作,但在运行中它却不能。我的代码是用python编写的,这个特定的dag需要在终端中运行特定的命令

你知道这怎么可能吗


如果你需要更多信息,请在评论中告诉我

这种行为的一个可能原因可能是,您的任务之前在数据库中缓存执行


所以测试可以工作,但当您调用airflow来运行DAG时,它会失败,因为它已经在后台运行,或者状态缓存在数据库中。尝试运行$
resetdb

此行为的一个可能原因可能是,您的任务先前已在数据库中缓存

所以测试可以工作,但当您调用airflow来运行DAG时,它会失败,因为它已经在后台运行,或者状态缓存在数据库中。请尝试运行$
重置数据库

回答:

此问题是由运行脚本的不同用户造成的

气流运行
使用不同的用户(和(子)进程)作为
气流测试
。切换到airflow用户不起作用,但为airflow用户提供更多权限(在linux中)应该起作用

回答:

此问题是由运行脚本的不同用户造成的


气流运行
使用不同的用户(和(子)进程)作为
气流测试
。切换到airflow用户不起作用,但为airflow用户提供更多权限(在linux中)应该起作用

这是否与从UI中删除(失败的)dag运行相同?此外,这不是问题,因为我在新的一天尝试了新的dag运行,但仍然失败,而没有缓存的dag运行。这是否与从UI中删除(失败的)dag运行相同?此外,这也不是问题,因为我在新的一天尝试了新的dag运行,但它仍然失败,因为没有缓存的dag运行。