public async Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            if (counter.TryIncrement())
            {
                await next.Invoke(context);

                counter.Decrement();
            }
            else
            {
                context.Response.StatusCode = 503;
                await context.Response.CompleteAsync();
            }
        }
Esempio n. 2
0
        public static IDisposable TemporaryIncrement(this IParallelRequestsCounter counter)
        {
            counter.TryIncrement();

            return(new ActionDisposable(counter.Decrement));
        }