我被分配到一个已经运行的新项目.我注意到人们使用async方法创建了所有存储库类,并且await每次都在控制器中调用它们,因此它们基本上用作同步代码.
将来不可能异步调用它们和服务器,运行一个SQL Server实例.
它来自一种种子API项目,创建它的人不再在公司,现在没有人确切知道他们为什么async.但我认为在当前的项目场景中,根本没有意义async,它只会给系统增加不必要的复杂性.
async在这种情况下制作它们是否有意义?
你将"同步"与"串行"混淆了.同步意味着"阻止线程"; 连续意味着"一次一个".
每次都会在控制器中调用它们,因此它们本质上是作为同步代码工作的.
不,它们是异步和串行调用的.这里的关键是在检索数据时不阻止ASP.NET请求线程.这有助于您的Web服务器扩展.
服务器运行一个SQL Server实例.
根据我对该体系结构的体验,大多数情况下单个SQL服务器实例将充当您的可伸缩性瓶颈.所以在这种情况下,async它不会有任何帮助,因为您的Web服务器现在可以扩展,但它仍然会受到DB后端的限制(在大多数情况下也是如此).
至于你没有问过的问题("让它们全部同步是否有意义?"),我会说不.为什么故意让网络服务器的可扩展性降低,即使你可以?如果您有可能在将来转移到可扩展的后端(例如,Azure SQL或SQL Server群集),那么您将需要Web服务器可伸缩性.
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |