Airflow 气流:只有一个任务的简单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

我制作了一个非常简单的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',
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中只显示了其中一个,但我猜它不知怎么搞砸了状态。谢谢你的帮助。