气流两次执行同​​一操作员

时间:2018-06-28 10:55:58

标签: airflow

我正在将Airflow 1.8.0与LocalExecutor结合使用,并且我每天都有DAG使用postgres_operator在表中插入一些行来运行各种Redshift查询。 我只是注意到,有时候,对于给定的TaskInstance,postgres_operator被启动了两次,所以最后我的表中有重复项。

当我查看TaskInstance的日志时,会看到类似问题的TaskInstance的内容:“启动尝试1之2”在同一秒内发生两次(不涉及自动重试或手动干预): Directions Service

您知道问题可能出在哪里吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您是否正在运行多个调度程序守护程序?即使您有多个Airflow工作人员,您的所有计算机都应该只有一个守护进程。

答案 1 :(得分:0)

从日志看来,这是在启动时发生的,因此该任务可能正在回填。

顺便说一句,在逻辑中使用execution_date是创建幂等DAG的好习惯。气流可能会使它们运行两次,以试图“追赶”。在“气流文档”的Backfill and Catchup部分中:

  

Airflow的一项关键功能是这些DAG运行是原子的,   幂等项,默认情况下,调度程序将检查   DAG的寿命(从开始到结束/现在,一次间隔一个)   并以未运行(或已运行)的任何间隔开始DAG运行   已清除)。这个概念称为追赶。

开始时,我们遇到了类似的问题。