我想知道为什么以下命令可能起作用:
airflow test [dag_id] [task_id] 20200421
但是如果我在UI中手动触发dag,则同一任务将失败。
任务本身很容易,基本上是:
cmd = 'ls' # other command
os.system(cmd)
os库已导入,并且如上所述,在测试中它确实起作用,但是在运行中却没有。我的代码在python中,这个特定的dag需要在终端中运行特定的命令。
您知道这怎么可能吗?
如果您需要更多信息,请在评论中告诉我!
此行为的一个可能原因可能是,您先前执行的任务已缓存在数据库中。
因此测试有效,但是当您调用气流运行DAG时,它已在后台运行,或者状态已缓存在数据库中,因此失败。尝试运行$ airflow resetdb