【问题标题】:Long running webjob fail due to Azure Storage timeout由于 Azure 存储超时,长时间运行的 webjob 失败
【发布时间】:2016-10-20 16:56:17
【问题描述】:

问题在于每日计划中长时间运行的 azure webjob。每次运行需要 2-4 小时进行数据分析。唯一的依赖关系是通过 EF 和 Azure 存储使用 Azure SQL 数据库,只需在 App.Config 上设置 AzureWebJobsDashboard 和 AzureWebJobsStorage 连接,在 VS 上使用 webjob SDK 进行标准设置。 webjob 的大部分时间都被 EF 的 SaveChanges() 所消耗。 我还使用大约 3000 行控制台输出进行大量日志记录以监控进度。 Web 应用程序配置为 Allways ON,并且 WEBJOBS_IDLE_TIMEOUT 设置为一个非常高的数字。

以下是错误日志:

[10/20/2016 07:48:17 > 492c46: ERR ] 未处理的异常:Microsoft.WindowsAzure.Storage.StorageException:客户端无法在指定的超时时间内完成操作。 ---> System.TimeoutException: 客户端无法在指定的超时时间内完成操作。

[10/20/2016 07:48:17 > 492c46: ERR ] --- 内部异常堆栈跟踪结束 ---

[10/20/2016 07:48:17 > 492c46: ERR] 在 Microsoft.WindowsAzure.Storage.Core.Util.StorageAsyncResult`1.End()

[10/20/2016 07:48:17 > 492c46: ERR ] 在 Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.EndUploadText(IAsyncResult asyncResult)

[10/20/2016 07:48:17 > 492c46: ERR ] 在 Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions。c__DisplayClass4.b__3(IAsyncResult ar)

【问题讨论】:

    标签: azure-blob-storage azure-webjobs azure-webjobssdk azure-storage-queues


    【解决方案1】:

    这已经是几个月大了,但是对于那些以后来的人......

    你提到你做了很多日志记录。处理something similar 时记录了一个问题。显然,WebJobs SDK 会定期将日志数据保存到 Blob 存储中。如果您使用大量带宽或以其他方式消耗大量资源,您可能会遇到 SDK 尝试保存到 blob 存储的超时。请注意堆栈跟踪中的上传调用。

    我在一个非常好的惩罚线路的过程中偶尔看到这种情况,所以我正在通过 WebJobs 日志记录工具禁用日志记录。

    【讨论】:

      【解决方案2】:

      如果触发的 webjob 在一定时间内处于空闲状态、没有 cpu 时间或输出,则会中止。尝试通过将配置 WEBJOBS_IDLE_TIMEOUT 设置为较大的数字来增加它,例如 3600。

      如果您的实例未配置 Always on,也可能会中止。

      如果这没有帮助,您应该尝试处理日志记录的数量。会不会是您尝试快速写入许多消息?看看this answer 看看是否会出现这种情况。

      【讨论】:

      • 感谢您的指出,我将 WEBJOBS_IDLE_TIMEOUT 配置为一个很大的数字,并且我的实例始终处于开启状态。我将通过编辑上面的问题来添加这两点。关于你的第三个建议,我的控制台输出大约是 3000 行,但我每一个都至少相隔一秒钟。
      • 你看过github.com/Azure/azure-webjobs-sdk/issues/755吗?尝试降级您的 Azure 存储 SDK。
      猜你喜欢
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 2013-10-25
      • 2020-12-17
      • 2018-12-17
      相关资源
      最近更新 更多