我们目前使用Dapper来处理一些非常耗费时间的更新/删除场景,并且我们对其非常满意。
现在我们有以下需要加速的场景:
- Update 1 大约需要 ~60 秒钟。
- Update 2 小于 1 秒钟。
如果我们按照同步方式进行,我们将总共花费约61秒钟等待。我们可以通过使用ExecuteAsync
方法调用第一个更新操作,但不要等待它完成以加快速度:
Connection.ExecuteAsync("Update 1", new { someValue }, Transaction, 120);
Connection.Execute("Update 2", new { someValue }, Transaction);
注意缺乏
await
关键字。这样做可以提高速度,但这是个好主意吗?在事务中能否正常工作? 当执行提交事务时,第一次更新仍在执行,会发生什么? 或者,在不使用
await
的情况下使用ExecuteAsync是个坏主意吗?假设更新2不依赖于更新1。