Fejlen:psycopg2.operationalerror: SSL SYSCALL error: EOF detected
Opsætningen:Luftstrøm + Rødskift + psychopg2
Hvornår:Forespørgsler tager lang tid tid til at udføre (mere end 300 sekunder).
En socket timeout opstår i dette tilfælde. Det, der løser denne specifikke variant af fejlen, er at tilføje keepalive-argumenter til forbindelsesstrengen.
keepalive_kwargs = {
"keepalives": 1,
"keepalives_idle": 30,
"keepalives_interval": 5,
"keepalives_count": 5,
}
conection = psycopg2.connect(connection_string, **keepalive_kwargs)
Rødforskydning kræver en keepalives_idle
på mindre end 300. En værdi på 30 virkede for mig, dit kilometertal kan variere. Det er også muligt, at keepalives_idle
argument er det eneste du skal indstille - men sørg for keepalives
er indstillet til 1.
Link til dokumenter på postgres keepalives.
Link til luftstrømsdokument, der rådgiver om 300 timeout.