sql >> Base de Datos >  >> RDS >> PostgreSQL

Error de Postgres SSL SYSCALL:EOF detectado con python y psycopg

El error:psycopg2.operationalerror: SSL SYSCALL error: EOF detected

La configuración:Flujo de aire + Desplazamiento al rojo + psycopg2

Cuándo:las consultas tardan mucho tiempo de ejecución (más de 300 segundos).

En esta instancia, se produce un tiempo de espera de socket. Lo que resuelve esta variante específica del error es agregar argumentos keepalive a la cadena de conexión.

keepalive_kwargs = {
    "keepalives": 1,
    "keepalives_idle": 30,
    "keepalives_interval": 5,
    "keepalives_count": 5,
}

conection = psycopg2.connect(connection_string, **keepalive_kwargs)

Redshift requiere un keepalives_idle de menos de 300. A mi me funciono un valor de 30, tu kilometraje puede variar. También es posible que el keepalives_idle el argumento es el único que necesita configurar, pero asegúrese de keepalives se establece en 1.

Enlace a documentos en postgres keepalives.

Enlace al documento de flujo de aire que aconseja sobre el tiempo de espera 300.