You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{
+ namespace Microsoft.AspNetCore.Builder {+ public static class ConcurrencyLimiterExtensions {+ public static IApplicationBuilder UseConcurrencyLimiter(this IApplicationBuilder app);+ }+ }+ namespace Microsoft.AspNetCore.ConcurrencyLimiter {+ public class ConcurrencyLimiterMiddleware {+ public ConcurrencyLimiterMiddleware(RequestDelegate next, ILoggerFactory loggerFactory, IQueuePolicy queue, IOptions<ConcurrencyLimiterOptions> options);+ public Task Invoke(HttpContext context);+ }+ public class ConcurrencyLimiterOptions {+ public ConcurrencyLimiterOptions();+ public RequestDelegate OnRejected { get; set; }+ }+ public interface IQueuePolicy {+ void OnExit();+ ValueTask<bool> TryEnterAsync();+ }+ public class QueuePolicyOptions {+ public QueuePolicyOptions();+ public int MaxConcurrentRequests { get; set; }+ public int RequestQueueLimit { get; set; }+ }+ }+ namespace Microsoft.Extensions.DependencyInjection {+ public static class QueuePolicyServiceCollectionExtensions {+ public static IServiceCollection AddQueuePolicy(this IServiceCollection services, Action<QueuePolicyOptions> configure);+ public static IServiceCollection AddStackPolicy(this IServiceCollection services, Action<QueuePolicyOptions> configure);+ }+ }+}