如何控制 Web API 中用户对特定操作的活动请求数?

How to control number of active requests to a particular action for a user in Web API?

我编写了一个异步网络 api 操作,需要很长时间才能执行。我想将用户未完成请求的数量限制为特定数量。我在网上很少看到他们在一段时间内进行节流的文章。 请指导我如何根据用户限制活动请求的数量。

使用现有的 Nuget 节流扩展,例如:https://github.com/stefanprodan/WebApiThrottle/blob/master/README.md

您可以自己构建一些简单的东西。

请求来自用户,添加活动连接记录,例如在数据库中 table。

收到另一个请求,计算现有的活动连接数,如果低于限制,请添加另一个请求。如果不是return BadRequest,例如

请求完成处理,删除其活动连接记录,以便计数减少。