我有一个运行KubernetesPodOperator
的DAG。这是一个长期运行的任务(一个ETL任务),可以运行几个小时(1-12小时)。在第一次尝试(pod-1
)中执行,但一段时间后它将记录信息:
{{local_task_job.py:91}} INFO - Task is not able to be run
因此,Airflow将尝试重试并创建一个新吊舱。此pod(pod-
2)会短暂启动并运行该应用程序,然后存在此消息:
{{local_task_job.py:103}} INFO - Task exited with return code 0
pod-2
被终止。
但是,当我检查k8s集群或grafana中的Pod列表时,我看到pod-1
仍在运行,并且应用程序运行得很好,因为记录仍在表中插入。我认为自从上一个任务(pod-2
)出现以来,代码为0,Airflow将任务和DAG标记为成功。这是一个问题,因为现在假设任务已完成并成功运行。请注意,pod-1
仍在运行,Airflow仍应跟踪该任务实例。
我正在将1.10.10
和CeleryExecutor
一起使用。有关此问题的解决方法是什么?