Usar dapper async dentro de una transacción

asynchronous dapper transactions

Pregunta

Actualmente estamos usando dapper para manejar algunos escenarios de actualización / eliminación muy costosos y estamos muy contentos con él.

Ahora tenemos el siguiente escenario que quiero acelerar.

  • La actualización 1 tarda unos ~ 60 segundos.
  • La actualización 2 lleva <1 segundo.

Si hacemos esto de la manera sincronizada, gastaremos aproximadamente 61 segundos esperando en total. ¿Podemos acelerar esto para llamar a la primera actualización con el método ExecuteAsync , pero no esperarlo? Al igual que:

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

Observe la falta de palabra clave await .

Esto acelerará las cosas, pero ¿es una buena idea y funcionará en una transacción? ¿Qué sucede cuando se acierta la confirmación de la transacción y la primera actualización todavía se está ejecutando? ¿O es una mala idea usar ExecuteAsync sin esperar?

Asumiendo que la actualización 2 no depende de la actualización 1.

Respuesta popular

Si la primera actualización no funciona en los mismos datos del segundo y no necesita esperar el resultado, puede ejecutarlo en modo asíncrono sin esperar. Te sugiero que leas esta página:

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

Explica cómo ejecutar comandos asíncronos con una conexión asíncrona a la base de datos, creo que puede ser útil para usted.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué