气流 + sqlalchemy 与元数据数据库的短期连接



我在 centos 7.5 虚拟机上部署了最新的气流,并在 postgresql 实例上更新了 postgres 数据库的sql_alchemy_connresult_backend,并将我的执行器指定为CeleryExecutor。根本没有启用任何 dag,甚至没有启动气流调度程序,我看到大约每 5 秒建立一次连接,然后准备运行SELECT 1SELECT CAST('test plain returns' AS VARCHAR(60)) AS anon_1

当启动调度程序并打开 dags 时,短期连接的数量会急剧增加。有谁知道原因吗?这是心跳检查还是任务状态检查?随着气流中的sql_alchemy_pool_enabled = True.cfg这些连接不应该更长的寿命吗?有没有一个日志,我可以查看这些亚秒级生命的连接的来源?

用于参考的配置值

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

AIRFLOW__CORE__SQL_ALCHEMY_POOL_PRE_PING设置为False

在每个连接池签出开始时检查连接。通常,这是一个简单的语句,例如SELECT 1.

更多信息请见:https://docs.sqlalchemy.org/en/13/core/pooling.html#disconnect-handling-pessimistic

相关内容

  • 没有找到相关文章

最新更新