Airflow:具有一项任务的简单 DAG 永远不会完成

Airflow: Simple DAG with one task never finishes

我制作了一个非常简单的 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 仍处于 "running" 状态。知道是什么原因造成的。下面的屏幕截图显示了 DAG 剩余 运行 的问题。较早的运行只是因为我手动将状态标记为成功而完成。 [编辑:我最初写的是:"The earlier runs are only finished because I manually set status to running."]

The earlier runs are only finished because I manually set status to running.

您确定您的调度程序正在 运行ning 吗?您可以使用 $ airflow scheduler 启动它,并检查 scheduler CLI command docs 您不必手动将任务设置为 运行ning。

你的代码看起来没问题。您可能会尝试的一件事是重新启动您的调度程序。

在 Airflow 元数据数据库中,DAG 运行 结束状态与任务 运行 结束状态断开连接。我以前见过这种情况,但通常当它意识到 DAG 运行 中的所有任务都已达到最终状态(成功、失败或跳过)时,它会在调度程序的下一个循环中自行解决。

您运行这里是 LocalExecutor、SequentialExecutor 还是其他东西?