sql >> Base de Datos >  >> RDS >> PostgreSQL

Postgres cierra la conexión durante la consulta después de unos cientos de segundos cuando se usa Psycopg2

Agregando el keepalive parámetros al psycopg2.connect La llamada parece haber resuelto el problema:

self.db = pg.connect(
            dbname=config.db_name,
            user=config.db_user,
            password=config.db_password,
            host=config.db_host,
            port=config.db_port,
            keepalives=1,
            keepalives_idle=30,
            keepalives_interval=10,
            keepalives_count=5
        )

Todavía no sé por qué esto es necesario. No puedo encontrar a nadie más que haya descrito tener que usar keepalives palabras clave de parámetro al usar Postgres en Docker solo para poder ejecutar consultas que toman más de 4-5 minutos, pero tal vez sea lo suficientemente obvio como para que nadie lo haya notado.