Thêm keepalive tham số cho psycopg2.connect cuộc gọi dường như đã giải quyết được vấn đề:
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
)
Tôi vẫn không biết tại sao điều này là cần thiết. Tôi không thể tìm thấy bất kỳ ai khác đã mô tả việc phải sử dụng keepalives từ khóa tham số khi sử dụng Postgres trong Docker chỉ để có thể chạy các truy vấn lâu hơn 4-5 phút, nhưng có lẽ nó đủ rõ ràng để không ai ghi nhận nó?