我正在将Airflow 1.8.0与LocalExecutor结合使用,并且我每天都有DAG使用postgres_operator在表中插入一些行来运行各种Redshift查询。 我只是注意到,有时候,对于给定的TaskInstance,postgres_operator被启动了两次,所以最后我的表中有重复项。
当我查看TaskInstance的日志时,会看到类似问题的TaskInstance的内容:“启动尝试1之2”在同一秒内发生两次(不涉及自动重试或手动干预): Directions Service
您知道问题可能出在哪里吗?
谢谢!
答案 0 :(得分:1)
您是否正在运行多个调度程序守护程序?即使您有多个Airflow工作人员,您的所有计算机都应该只有一个守护进程。
答案 1 :(得分:0)
从日志看来,这是在启动时发生的,因此该任务可能正在回填。
顺便说一句,在逻辑中使用execution_date
是创建幂等DAG的好习惯。气流可能会使它们运行两次,以试图“追赶”。在“气流文档”的Backfill and Catchup部分中:
Airflow的一项关键功能是这些DAG运行是原子的, 幂等项,默认情况下,调度程序将检查 DAG的寿命(从开始到结束/现在,一次间隔一个) 并以未运行(或已运行)的任何间隔开始DAG运行 已清除)。这个概念称为追赶。
开始时,我们遇到了类似的问题。