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

2024-04-04

我制作了一个非常简单的 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 仍在运行的问题。早期的运行才完成,因为我手动将状态标记为成功。 [编辑:我最初写道:“早期的运行仅完成,因为我手动将状态设置为正在运行。”]


早期的运行才完成,因为我手动将状态设置为正在运行。

您确定您的调度程序正在运行吗?你可以开始它$ airflow scheduler,并检查调度程序 CLI 命令文档 https://airflow.apache.org/cli.html#scheduler您不必手动将任务设置为运行。

你这里的代码看起来不错。您可以尝试的一件事是重新启动调度程序。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Airflow:只有一项任务的简单 DAG 永远不会完成 的相关文章

随机推荐