L'errore:psycopg2.operationalerror: SSL SYSCALL error: EOF detected
La configurazione:Flusso d'aria + Spostamento verso il rosso + psicopog2
Quando:le query richiedono un tempo lungo tempo di esecuzione (più di 300 secondi).
In questo caso si verifica un timeout del socket. Ciò che risolve questa specifica variante dell'errore è l'aggiunta di argomenti keepalive alla stringa di connessione.
keepalive_kwargs = {
"keepalives": 1,
"keepalives_idle": 30,
"keepalives_interval": 5,
"keepalives_count": 5,
}
conection = psycopg2.connect(connection_string, **keepalive_kwargs)
Redshift richiede un keepalives_idle
inferiore a 300. Un valore di 30 ha funzionato per me, il tuo chilometraggio può variare. È anche possibile che il keepalives_idle
l'argomento è l'unico che devi impostare, ma assicurati che keepalives
è impostato su 1.
Link ai documenti sui keepalive di Postgres.
Collegamento al documento di flusso d'aria che fornisce consulenza sul timeout 300.