Geschäft.
Datenbanktransaktionen werden aufgrund der Codierung/Datenbank, die zum Ausgeben asynchroner Abfragen verwendet wird, unterstützt.
Die grundlegende Verwendung
Um Transaktionen zu verwenden, verwenden Sie database. transaction als asynchronen Kontextmanager:
1 2 3 4 5 | |
!!!Beachten Sie, dass diese Datenbank mit der Datenbank identisch sein muss, die im ormar_config-Objekt des Modells verwendet wird.
Um zu vermeiden, dass eine Datenbankinstanz im Code übergeben wird, können Sie aus jedem Modell eine Instanz extrahieren Die während der ormar. Model-Deklaration angegebene Datenbank ist über ormar_config. database verfügbar und kann von Klassen und Instanzen aus aufgerufen werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
Sie können. transaction () auch als Funktionsdekorator für jede asynchrone Funktion verwenden:
1 2 3 | |
Transaktionsblöcke werden als lokale Zustände von Aufgaben verwaltet, die verschachtelte Transaktionen vollständig unterstützen und Datenbankspeicherpunkte verwenden.
Manuelle Übertragung/Zurücksetzen
Für die Trading API der unteren Ebene können Sie sie manuell auslösen
1 2 3 4 5 6 7 8 | |
Testen Sie
Transaktionen sind auch während des Tests nützlich, wenn Sie ein erzwungenes Rollback anwenden können und die Daten nach jedem Test nicht bereinigen müssen.
1 2 3 4 5 6 | |