Adicionando o
keepalive
parâmetros para o psycopg2.connect
chamada parece ter resolvido o 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
)
Ainda não sei por que isso é necessário. Não consigo encontrar mais ninguém que tenha descrito ter que usar as
keepalives
palavras-chave de parâmetro ao usar o Postgres no Docker apenas para poder executar consultas que levam mais de 4-5 minutos, mas talvez seja óbvio o suficiente que ninguém tenha notado isso?