Felet:psycopg2.operationalerror: SSL SYSCALL error: EOF detected
Inställningen:Luftflöde + Rödskiftning + psycopg2
När:Förfrågningar tar lång tid att köra (mer än 300 sekunder).
En socket timeout inträffar i detta fall. Det som löser denna specifika variant av felet är att lägga till keepalive-argument till anslutningssträngen.
keepalive_kwargs = {
"keepalives": 1,
"keepalives_idle": 30,
"keepalives_interval": 5,
"keepalives_count": 5,
}
conection = psycopg2.connect(connection_string, **keepalive_kwargs)
Redshift kräver en keepalives_idle
på mindre än 300. Ett värde på 30 fungerade för mig, din körsträcka kan variera. Det är också möjligt att keepalives_idle
argument är det enda du behöver ställa in - men se till att keepalives
fungerar är inställd på 1.
Länk till dokument på postgres keepalives.
Länk till luftflödesdokument som ger råd om 300 timeout.