使用 SemaphoreSlim 队列来处理高并发请求。
1、注入 SemaphoreSlim 类,参数为可以同时处理请求的数量。
2、将并发限制中间件 ConcurrencyLimiterMiddleware 添加到管道中。
public static void Main(string[] args)
{
FlexibleCoreInit.Build(args, (opt, cft) =>
{
opt.ConfigureServices(services =>
{
services.AddSingleton(s =>
{
return new SemaphoreSlim(1000);
});
});
opt.Configure(3, (app, env) =>
{
// 将并发限制中间件添加到管道中
app.UseMiddleware();
});
}).Run();
}
其中:1000 代表同时并发的数量,3 代表中间件的执行序列。