下载Azure blob需要2分钟的延迟

时间:2017-04-14 11:07:36

标签: c# azure azure-sdk-.net

我正在使用C#开发应用程序并使用Azure。我注意到,当我尝试加载大量blob时,一些请求需要大约2分钟。通常下载时间为1-15秒。 奇怪的是,请求可能需要1-15秒或2分钟(从不30秒,或1分钟等)。对我来说,Azure看起来有某种限制或重试机制,但我不确定。

导致2分钟延误的原因是什么? 如何避免这种延误?

CloudBlockBlob blob = this.GetBlobReference(key);    
using(var msGet = new MemoryStream())
{
    await this._ap.Do(() =>
    {
        var downloadToStreamAsync = blob.DownloadToStreamAsync(msGet);
        return downloadToStreamAsync;
    }).ConfigureAwait(false);
}

1 个答案:

答案 0 :(得分:0)

看起来这是一个Azure问题。 https://github.com/Azure/azure-webjobs-sdk-script/issues/298

  

目前,功能应用程序存在短暂的空闲超时,因此如果它们没有获得5分钟的请求,则下一个请求会导致冷启动,这需要更长的时间。我们正在考虑增加这种超时,这将使情况变得不那么常见。

看起来唯一的解决方案就是让服务器保持温暖。我认为运行一个服务将是3分钟内对azure存储进行1次调用将是很有意义的。避免冷启动