L'erreur :psycopg2.operationalerror: SSL SYSCALL error: EOF detected
La configuration :Flux d'air + Redshift + psycopg2
Quand :les requêtes prennent long temps d'exécution (plus de 300 secondes).
Un délai d'attente de socket se produit dans cette instance. Ce qui résout cette variante spécifique de l'erreur consiste à ajouter des arguments keepalive à la chaîne de connexion.
keepalive_kwargs = {
"keepalives": 1,
"keepalives_idle": 30,
"keepalives_interval": 5,
"keepalives_count": 5,
}
conection = psycopg2.connect(connection_string, **keepalive_kwargs)
Redshift nécessite un keepalives_idle
de moins de 300. Une valeur de 30 a fonctionné pour moi, votre kilométrage peut varier. Il est également possible que le keepalives_idle
l'argument est le seul que vous devez définir - mais assurez-vous que keepalives
est défini sur 1.
Lien vers la documentation sur postgres keepalives.
Lien vers la documentation sur le flux d'air indiquant un délai d'attente de 300.