Amazon S3请求超载

时间:2016-02-10 17:19:02

标签: c# asynchronous amazon-s3 timeout restsharp

我有一个WebApi Route,可以发出Amazon S3的异步请求。请求数量为数千。它看起来像这样:

for (var i = 0; i < pdfs.Count; i++)
{
    //stuff ...

    var getPdfClient = new RestClient(pdf.Url);
    var getPdfRequest = new RestRequest(Method.GET);
    getPdfRequest.AddParameter("pdfIndex", i);

    getPdfClient.ExecuteAsync(getPdfRequest, getPdfResponse => // Download the PDF async
    {
          //do stuff on response
    }
}

如上所述,这导致在如此多的请求之后发生超时响应。

通过增加请求超时request.Timeout = 14400000;

,问题不会消失

通过在执行异步之前放置Thread.Sleep(100),问题确实消失了。这让我相信超时是因为有这么多请求轰炸S3的结果。

显然Thread.Sleep不是正确的答案。在此负载下,我应该更改为与S3正确接口?

0 个答案:

没有答案