asynchronous - 在事务中使用 dapper async

标签 asynchronous transactions dapper

我们目前正在使用 dapper 来处理一些非常昂贵的更新/删除场景,我们对此非常满意。

现在我们有以下场景,我想加快速度。

  • 更新 1 大约需要 60 秒。
  • 更新 2 需要 <1 秒。

  • 如果我们以同步方式执行此操作,我们总共将花费大约 61 秒的等待时间。
    我们能不能加快速度,用 ExecuteAsync 调用第一次更新?方法,但不是等待它。像这样:
    Connection.ExecuteAsync("Update 1", new { someValue }, Transaction, 120);
    Connection.Execute("Update 2", new { someValue }, Transaction);

    注意缺少 await关键词。

    这会加快速度,但这是一个好主意吗,它会在事务中工作吗?
    当事务提交被命中,并且第一次更新仍在执行时会发生什么?
    或者在没有 await 的情况下使用 ExecuteAsync 是一个坏主意?

    假设更新 2 不依赖于更新 1。

    最佳答案

    如果第一次更新在第二次的相同数据中不起作用并且您不需要等待结果,则可以在不等待的情况下以异步模式执行它。
    我建议你阅读这个页面:

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

    它解释了如何通过与数据库的异步连接来执行异步命令,我认为它对您很有用。

    关于asynchronous - 在事务中使用 dapper async,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27742805/

    相关文章:

    asp.net - Dapper 问题。从返回的对象中获取值

    java - 我如何提交 Play! JPA交易手动?

    javascript - Node.js - 使用异步库 - async.parallel 传递数组

    JavaScript 异步 : Rerun the function on map

    javascript - 使用异步数据获取的服务器端呈现

    Python Google App Engine 查询内部事务没有祖先?

    java - AutomaticPlaceholderConstraint 占位符无法满足契约

    .net - 缓冲参数在 Dapper dot net 中起什么作用?

    c# - Dapper 是否支持 SQL 2008 表值参数 2?

    java - 异步加载 JButton 图标