Airflow 气流:只有一个任务的简单DAG永远不会完成
我制作了一个非常简单的DAG,如下所示:Airflow 气流:只有一个任务的简单DAG永远不会完成,airflow,airflow-scheduler,Airflow,Airflow Scheduler,我制作了一个非常简单的DAG,如下所示: from datetime import datetime from airflow import DAG from airflow.operators.bash_operator import BashOperator cleanup_command = "/home/ubuntu/airflow/dags/scripts/log_cleanup/log_cleanup.sh " dag = DAG( 'log_cleanup', descript
from datetime import datetime
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
cleanup_command = "/home/ubuntu/airflow/dags/scripts/log_cleanup/log_cleanup.sh "
dag = DAG(
'log_cleanup',
description='DAG for deleting old logs',
schedule_interval='10 13 * * *',
start_date=datetime(2018, 3, 30),
catchup=False,
)
t1 = BashOperator(task_id='cleanup_task', bash_command=cleanup_command, dag=dag)
任务成功完成,但尽管如此,DAG仍处于“运行”状态。你知道这是什么原因吗。下面的屏幕截图显示了DAG仍在运行的问题。之前的运行之所以完成,是因为我手动将状态标记为成功。[编辑:我最初写道:“以前的运行只会完成,因为我手动将状态设置为running。”]
之前的运行仅完成,因为我手动将状态设置为running
您确定您的计划程序正在运行吗?您可以使用$airflow scheduler
启动它,并选中不必手动将任务设置为running的选项
你的代码看起来不错。您可以尝试重新启动计划程序
在Airflow元数据数据库中,DAG运行结束状态与任务运行结束状态断开连接。我以前见过这种情况,但通常在调度程序的下一个循环中,当它意识到DAG运行中的所有任务都已达到最终状态(成功、失败或跳过)时,它会自行解决
您是在运行LocalExecutor、SequentialExecutor还是其他什么?我输入了一个大错误。我的意思是我手动将状态设置为成功。否则它永远不会停止。我确信调度程序正在运行许多其他DAG,工作正常。我用的是LocalExecutor,这太奇怪了。您是手动将任务状态设置为成功还是将DAG运行状态设置为成功?如果您将
bash_命令
替换为像uptime
这样的琐碎命令,您会得到相同的结果吗?我想我找到了错误。我有两个同名的狗。然而,GUI中只显示了其中一个,但我猜它不知怎么搞砸了状态。谢谢你的帮助。