WebApi请求方法中的并行循环

Task.Parallel方法中使用WebApi库是否安全?如果可以安全地在Web api请求中使用Parallel,如何设计功能以处理可以并行处理的大量数据?当许多用户使用并行循环执行此api请求时,会出什么问题?

[HttpGet]
public async Task<actionResult<ProjectModel>> Getsomething()
{
    //some code...
    Parallel.ForEach(array,(current) => 
    {
        //do something
    });
}
lili_beijing 回答:WebApi请求方法中的并行循环

是的,这很安全。

但是还有另一个众所周知的模式。使用消息队列。 Web API收到请求后,在消息队列中发送工作消息。从控制台/工作者应用程序中读取队列中的消息并进行处理。

此方法具有以下好处

  1. 由于Web API将消息传递到队列而不是未处理,所以超时的可能性较小
  2. 扩展会更容易,您只需运行更多worker实例即可处理大量积压。
  3. Web服务器可以处理更多请求。

有许多消息代理,例如Rabbitmq,kafka。

本文链接:https://www.f2er.com/3145669.html

大家都在问