PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

come risolvere OperationalError:il server (psycopg2.OperationalError) ha chiuso la connessione in modo imprevisto

Stessa logica per sqlalchemy.orm, (su cui si basa flask_sqlalchemy tra l'altro)

engine = sqlalchemy.create_engine(connection_string, pool_pre_ping=True)

È possibile impostare più strategie di protezione come descritto nel documento:https://docs.sqlalchemy.org/en/13/core/pooling.html#disconnect-handling-pessimistic

Ad esempio, ecco la mia istanza del motore:

engine = sqlalchemy.create_engine(connection_string,
                                      pool_size=10,
                                      max_overflow=2,
                                      pool_recycle=300,
                                      pool_pre_ping=True,
                                      pool_use_lifo=True)

sqlalchemy.orm.sessionmaker(bind=engine, query_cls=RetryingQuery)

Per il codice RetryingQuery, vedere:Riprova query sqlalchemy non riuscite