xuanye / DotXxlJob

xxl-job的dotnet core 执行器实现
MIT License
154 stars 76 forks source link

你写的那个中间件有没有考虑过一个问题? #10

Closed gesions closed 3 years ago

gesions commented 3 years ago

public async Task Invoke(HttpContext context) { string contentType = context.Request.ContentType;

        if ("POST".Equals(context.Request.Method, StringComparison.OrdinalIgnoreCase)
            && !string.IsNullOrEmpty(contentType)
            && contentType.ToLower().StartsWith("application/json"))
        {

            await _rpcService.HandlerAsync(context.Request,context.Response);              

            return;
        }

        await _next.Invoke(context);
    }

我觉得你这么写会导致一些正常的一些请求也会去执行await _rpcService.HandlerAsync(context.Request,context.Response); 了。这肯定不行的吧。

xuanye commented 3 years ago

那个项目的名字是Sample/xxxx 所以只是个示例 ,实际项目中两种处理方式来解决这个问题 1独立的项目来单独接受执行器请求,由执行器来调用业务接口,分离 2 业务接口和执行器的接口通过某种方式区分,如URL,来源IP, Referer User-Agent