Airflow 两次执行同一个操作符
我在LocalExecutor中使用Airflow 1.8.0,我有一个每天运行各种红移查询的DAG,使用postgres_操作符在表中插入一些行。 我只是注意到,有时候,对于给定的TaskInstance,postgres_操作符会启动两次,所以最后我的表中会有重复的 当我查看TaskInstance的日志时,我看到类似于有问题的TaskInstance的日志:“开始尝试1/2”在同一秒钟内发生两次(不涉及自动重试或手动干预): 你知道问题是从哪里来的吗Airflow 两次执行同一个操作符,airflow,Airflow,我在LocalExecutor中使用Airflow 1.8.0,我有一个每天运行各种红移查询的DAG,使用postgres_操作符在表中插入一些行。 我只是注意到,有时候,对于给定的TaskInstance,postgres_操作符会启动两次,所以最后我的表中会有重复的 当我查看TaskInstance的日志时,我看到类似于有问题的TaskInstance的日志:“开始尝试1/2”在同一秒钟内发生两次(不涉及自动重试或手动干预): 你知道问题是从哪里来的吗 谢谢 是否正在运行多个计划程序守护进
谢谢 是否正在运行多个计划程序守护进程?即使您有多个Airflow Worker,您的所有机器也应该只有一个守护进程。从日志中可以看出,这似乎是在启动时发生的,因此任务可能正在执行 作为辅助,在逻辑中使用
execution\u date
创建幂等DAG是一种很好的做法。气流可能会运行两次,以尝试“追赶”。从气流文档中的部分:
气流的一个关键功能是这些DAG运行是原子的,
幂等项,默认情况下,调度程序将检查
DAG的生存期(从开始到结束/现在,一次一个间隔)
并在未运行(或已运行)的任何间隔内启动DAG运行
已清除)。这个概念被称为Catchup
开始时,我们遇到了类似的问题。谢谢!请问我怎么查?顺便说一下,我只使用了一台机器(localexecutor)。请在您的机器上查找运行带有
ps aux
的进程!当我这样做的时候,我得到了50行“气流调度器”,也许我们在部署更改时做了一些错误。我们使用的是supervisord,似乎我们需要指定一些设置,如