Skip to content
Snippets Groups Projects
Commit 4b58f040 authored by Jan Hadrava's avatar Jan Hadrava
Browse files

sqlalchemy: automatický reconnect po zavření spojení

SQLAlchemy za normálních okolností vyhodí exceptionu při prvním requestu
poté, co jí databáze zavře spojení. I v případě, že se tak stane mezi
requesty, musí si to kód handlovat explicitně. Po restartu postgresu
jinak dostane první request v každém workeru error 500.

SQLAlchemy se o to umí postarat sama jen s optionem:
        "pool_pre_ping": True,
Na začátku každé transakce nejprve databázi pingne a při odpojení se
zvládne sama reconnectnout. Když běží databáze na stejném serveru,
nemělo by to přidávat výrazný overhead.
parent 972646d8
No related branches found
No related tags found
1 merge request!55config: Automatický reconnect po zavření spojení k databázi
...@@ -3,6 +3,14 @@ ...@@ -3,6 +3,14 @@
SQLALCHEMY_DATABASE_URI = "postgresql:///mo_osmo" SQLALCHEMY_DATABASE_URI = "postgresql:///mo_osmo"
SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = False SQLALCHEMY_ECHO = False
SQLALCHEMY_ENGINE_OPTIONS = {
# SQLAlchemy neumí bez pingnutí databáze na začátku každé transakce
# sama ohandlovat zavření spojení. Po restartu Postgresu bez tohoto
# nastavení vydá každý worker jednu 500, než začne fungovat normálně.
# Pokud běží databáze na stejném serveru, zapnutí by mělo mít
# zanedbatelný overhead.
"pool_pre_ping": True,
}
# Vytvořte pomocí python3 -c 'import secrets; print(secrets.token_hex(32))' # Vytvořte pomocí python3 -c 'import secrets; print(secrets.token_hex(32))'
SECRET_KEY = "FIXME" SECRET_KEY = "FIXME"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment