【发布时间】:2021-09-11 05:47:36
【问题描述】:
我正在开发一个 Asp.Net Core 组件,该组件具有一些用于获取某些流程执行请求的接口。此请求将是同步的,其中接受请求并将提交令牌返回给调用者。请求被添加到队列并异步处理。每个请求执行都涉及进行一些休息调用以获取一些数据、执行进程等。
无论是使用Task还是Parallel类,如何并行处理来自队列的多个请求
【问题讨论】:
我正在开发一个 Asp.Net Core 组件,该组件具有一些用于获取某些流程执行请求的接口。此请求将是同步的,其中接受请求并将提交令牌返回给调用者。请求被添加到队列并异步处理。每个请求执行都涉及进行一些休息调用以获取一些数据、执行进程等。
无论是使用Task还是Parallel类,如何并行处理来自队列的多个请求
【问题讨论】:
您所描述的是一系列 I/O 绑定的 REST 调用。你应该做的是循环这些调用,等待每个调用。类似的东西
public async Task X()
{
// add requests to queue
...
foreach (var request in queue)
{
await ExecuteRequest(request);
}
}
经典意义上的并行性与线程和 CPU 绑定工作有关,因此不适合您的场景。
【讨论】: