Menambahkan keepalive parameter ke psycopg2.connect panggilan tampaknya telah memecahkan masalah:
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
)
Saya masih tidak tahu mengapa ini perlu. Saya tidak dapat menemukan orang lain yang menjelaskan harus menggunakan keepalives parameter kata kunci saat menggunakan Postgres di Docker hanya untuk dapat menjalankan kueri yang membutuhkan waktu lebih dari 4-5 menit, tetapi mungkin cukup jelas bahwa tidak ada yang mencatatnya?