Skip to content
Snippets Groups Projects

config: Automatický reconnect po zavření spojení k databázi

1 file
+ 8
0
Compare changes
  • Side-by-side
  • Inline
  • 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.
+ 8
0
@@ -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"
Loading