ASP.NET web api 中的并发请求处理

Concurrent request handling in ASP.NET web api

我有一个非常简单的 Web 应用程序,其中包含几个端点(获取、放置、删除)。

该应用程序的任务是 store/return/remove 我的数据库中的一些数据。

我想为项目添加并发性,以避免应用同时收到几个请求并并行处理的情况。

能否请您提供一些简单的solution/manual实现方法?

谢谢!

更新:

举个例子:

如果我发送两个请求(使用 Postman),例如 DELETE 和 GET,它会并行执行,所以我收到不正确的结果。

我想完成第一个(删除),然后才开始第二个

当您想要并发但又不想让它处理并行请求时,不太确定您要求的是什么?

无论如何我都会试一试:

鉴于它是一个 dotnet 核心项目。 只要您对数据库使用异步操作并确保它一直异步到端点,您应该能够很好地处理并发请求。

通常,Web 应用程序会并发处理请求,以增加它们可以服务的用户数量。因此,并发性是 Web 应用程序的核心,并且在大多数情况下这不会导致问题。此外,底层数据库通常能够很好地处理并行请求。

当然,从开发者的角度,你可以构造两个请求恰好在同一时间点到达的情况,一个删除数据,另一个读取数据。对于大多数 Web 应用程序来说,处理更多用户更为重要,因此他们接受在这种理论情况下,他们 return 刚刚被删除的响应中的数据。

此外,在 single-server 环境中按顺序处理请求似乎很容易,但在 multi-server 部署中却很难。此外,如果一个请求必须等到其他请求完成,它会导致应用程序性能下降。

因此,除非您的场景非常具体,或者由于并发请求而遇到问题,否则我建议坚持使用默认行为。