sql >> Databáze >  >> RDS >> Mysql

Zkuste znovu zablokovat MySQL / SQLAlchemy

S Session to opravdu nemůžete udělat z venku. Session musel by to vnitřně podporovat. To by znamenalo ušetřit spoustu soukromého státu, takže to nemusí stát za váš čas.

Úplně jsem zavrhl většinu věcí ORM ve prospěch rozhraní SQLAlchemy Core nižší úrovně. Pomocí tohoto (nebo dokonce jakéhokoli rozhraní dbapi) můžete triviálně používat svůj retry_on_deadlock_decorator dekoratér (viz otázka výše) k vytvoření nového souboru db.execute obal.

 @retry_on_deadlock_decorator
 def deadlock_safe_execute(db, stmt, *args, **kw):
     return db.execute(stmt, *args, **kw)

A místo

 db.execute("UPDATE users SET active=0")

ty ano

 deadlock_safe_execute(db, "UPDATE users SET active=0")

který se automaticky zopakuje, pokud dojde k uváznutí.



  1. MySQL If Date prohlášení?

  2. Jak zkombinovat dva početní dotazy do jejich poměru?

  3. Jak vytvořit tabulku s více cizími klíči a nenechat se zmást

  4. Problém MySQL GROUP BY/ORDER BY