我们日常开发中可能常做的给某web服务器配置连接数以及,请求队列大小,那么今天我们看看如何在通过中间件形式实现一个并发量以及队列长度限制....env)
{
//添加并发限制中间件
app.UseConcurrencyLimiter();
app.Run(async...lock锁,再接着判断总请求量是否≥(请求队列限制的大小+最大并发请求数),如果当前数量超出了,那么我直接抛出,送你个503状态;
if (result)
{
try..._onRejected(context);
}
问题来了,我这边如果说还没到你设置的大小呢,我这个请求没有给你服务器造不成压力,那么你给我处理一下吧.
await _serverSemaphore.WaitAsync..._serverSemaphore.WaitAsync();
return true;
}
返回成功后那么中间件这边再进行处理,_queuePolicy.OnExit();通过该调用进行调用