Po dlouhém a brutálním boji jsem tento problém vyřešil jednoduše tím, že jsem provedl strategii, o které mluví ostatní, ale použil jsem samotnou funkci psycopg2 connect:
from psycopg2 import connect
conn = connect(
database=database,
user=username,
password=password,
host=hostname,
port=port,
connect_timeout=3,
# https://www.postgresql.org/docs/9.3/libpq-connect.html
keepalives=1,
keepalives_idle=5,
keepalives_interval=2,
keepalives_count=2)
Viděl jsem, že psycopg2 trvale visí na dlouhotrvajících dotazech, ale nyní se zdá, že problém je plně vyřešen.
Upozorňujeme, že se může jednat o novou funkci, protože tato otázka je stará.