我正在编写一个程序,必须尽快进行几千个REST API调用。如果我将它们全部串行(即一个接一个),那么就没有瓶颈,但REST API的主机可以并行处理它们......直到某一点。
我已经对发出请求的代码进行了并行化,但我注意到REST API可以同时处理的请求数量有一个“最佳位置”。
我目前的方法是在4个线程之间进行并行处理,并确定每个请求完成所需的时间。我用秒表计时所有请求并计算平均值。如果平均时间开始增加,那么在进行下一个请求之前我会增加一个人工延迟;如果平均值开始下降,那么我减少延迟。然而,我注意到随着时间的推移,平均时间仍然在增加,这意味着我已经超过了最佳位置。
我正在寻找的是如何寻找和追踪这个甜蜜点的一些指导或建议。我会非常感激C#中的例子,但我原则上也会对这些想法感兴趣。