Dapper Async innerhalb einer Transaktion verwenden

asynchronous dapper transactions

Frage

Wir verwenden derzeit dapper, um einige sehr teure Update / Delete-Szenarien zu bearbeiten, und wir sind sehr zufrieden damit.

Jetzt haben wir das folgende Szenario, das ich beschleunigen möchte.

  • Update 1 dauert ~ 60 Sekunden.
  • Update 2 dauert <1 Sekunde.

Wenn wir das tun, werden wir insgesamt 61 Sekunden warten. Können wir das beschleunigen, das erste Update mit der ExecuteAsync Methode ExecuteAsync , aber nicht abwarten. Wie so:

Connection.ExecuteAsync("Update 1", new { someValue }, Transaction, 120);
Connection.Execute("Update 2", new { someValue }, Transaction);

Beachten Sie das Fehlen des await Keywords.

Das wird die Dinge beschleunigen, aber ist es eine gute Idee, und wird es in einer Transaktion funktionieren? Was passiert, wenn das Transaktions-Commit erreicht wird und das erste Update noch ausgeführt wird? Oder ist es eine schlechte Idee, ExecuteAsync zu verwenden, ohne zu warten?

Angenommen, Update 2 ist nicht von Update 1 abhängig.

Beliebte Antwort

Wenn das erste Update nicht in den gleichen Daten des zweiten funktioniert und Sie nicht auf das Ergebnis warten müssen, können Sie es im asynchronen Modus ohne warten ausführen. Ich empfehle Ihnen, diese Seite zu lesen:

http://www.joesauve.com/async-dapper-and-async-sql-connection-management/

Es erklärt, wie man asynchrone Befehle mit einer asynchronen Verbindung zur Datenbank ausführt, ich denke, dass es für Sie nützlich sein kann.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum