PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Erro Postgres SSL SYSCALL:EOF detectado com python e psycopg


O erro:psycopg2.operationalerror: SSL SYSCALL error: EOF detected

A configuração:Fluxo de ar + Desvio para o vermelho + psycopg2

Quando:as consultas demoram muito tempo de execução (mais de 300 segundos).

Um tempo limite de soquete ocorre nesta instância. O que resolve essa variante específica do erro é adicionar argumentos keepalive à string de conexão.
keepalive_kwargs = {
    "keepalives": 1,
    "keepalives_idle": 30,
    "keepalives_interval": 5,
    "keepalives_count": 5,
}

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

Redshift requer um keepalives_idle de menos de 300. Um valor de 30 funcionou para mim, sua milhagem pode variar. Também é possível que o keepalives_idle argumento é o único que você precisa definir - mas certifique-se de keepalives é definido como 1.

Link para documentos sobre postgres keepalives.

Link para o documento do fluxo de ar informando sobre o tempo limite de 300.