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.