我在CentOS 7.5虚拟机上部署了最新的Airflow,并将sql_alchemy_conn
和result_backend
更新为PostgreSQL实例上的Postgres数据库,将执行程序指定为CeleryExecutor
。即使没有启动任何dag甚至没有启动Airflow调度器,在每5秒钟左右就会建立大约一个连接,然后进行SELECT 1
和SELECT CAST('test plain returns' AS VARCHAR(60)) AS anon_1
的运行并且立即关闭。
当启动调度器并开启dags时,短暂连接的数量急剧增加。有人知道这个原因吗?这是否是一个心跳检查或任务状态检查?在airflow.cfg中设置sql_alchemy_pool_enabled = True
后,这些连接不应该更长寿吗?是否有日志可以查看来确定这些持续时间不到一秒的连接的来源?
参考使用的配置值如下
executor = CeleryExecutor
sql_alchemy_conn = postgres://..../db1
sql_alchemy_pool_enabled = True
sql_alchemy_pool_size = 5
sql_alchemy_max_overflow = 0
parallelism = 32
dag_concurrency = 16
max_active_runs_per_dag = 16
worker_concurrency = 16
broker_url = redis://...
result_backend = db+postgresql+psycopg2://.../db2
job_heartbeat_sec = 5
scheduler_heartbeat_sec = 5
sql_alchemy_pool_size
并设置适当的数字。如果您没有指定,默认值为5。因此,请尝试增加该数字。 - kaxillogging_level = DEBUG
为我提供了关于sqlalchemy正在发生什么的更多信息。请忽略我的日志问题。 - chi