我有这个简单的控制器:
[HttpGet, ActionName("analysis")]
public async Task<StatusResultModel> Analysis(Guid api_key)
{Thread.Sleep(10000);}
我需要实现的是限制每个用户群的访问权限,以便每个用户只能向该控制器发出一个HTTP请求。
因此,如果某人发出两个并行请求,则第一个请求将处理,但第二个请求将阻塞,直到第一个请求未完成。
答案 0 :(得分:2)
您需要存储每个api密钥的请求状态并相应地进行管理。在您的状态启动时添加条目,检查每个请求是否存在,并在完成后删除。