【发布时间】:2014-11-18 16:45:42
【问题描述】:
在我们的项目中,我们将 async/await 用于几乎 3 个目的(针对所有方法):
- 数据访问层:获取/更新数据库的位置(使用 Dapper)。
- 缓存(Redis):读/写。
- ASP.Net MVC 5 控制器。
问题是多少异步/等待是可以的。即使在读取或写入少量数据时也可以使用它们吗?缓存和控制器呢?
备注:这个项目有点特别,一天的几个小时可能有大约每秒50,000个请求。
【问题讨论】:
-
一根绳子有多长?如果没有看到您编写的任何代码并且至少对您的服务器环境有所了解,就不可能回答这个问题。您是否仅将
async/await用于 IO?您在应该使用的地方使用ConfigureAwait(false)吗?你做过分析和压力测试吗? 你特别关注哪一段代码? -
我们确实设置了一些负载测试,模拟了大约 10,000 个用户,并看到了 IIS8 中排队的项目,即使对于简单的场景也是如此。
标签: c# asp.net-mvc asynchronous async-await