【问题标题】:Azure scheduled task timeout after 30 secondsAzure 计划任务在 30 秒后超时
【发布时间】:2015-07-28 18:23:03
【问题描述】:

无法找到此问题的答案,因此欢迎提供任何帮助。我在 Azure 中的一项计划任务运行大型报告创建,但它超时,因为计划程序在 30 秒后抛出超时错误,然后再重试 5 次!我的数据库非常大,脚本大约需要 7 分钟才能完成。有关如何增加超时和/或如何使用门户取消重试的任何建议?

有人建议在action中的重试策略中添加以下内容,但解释不够:

  

 "retryPolicy":
    {
     "retryType": "none"
     }

【问题讨论】:

    标签: azure timeout retrypolicy


    【解决方案1】:

    在 C# 中,您可以在 JobAction 中指定 RetryPolicy。让我试着看看我在下面更好地描述了这一点......

    假设您的凭据、云服务(不要与 PaaS 中的其他云服务混淆)和作业集合就位,您将创建一个这样的 SchedulerClient...

    SchedulerClient mySchedClient = new SchedulerClient(
              cloudServiceName: myCloudServiceName,
              jobCollectionName: myJobCollectionName,
              credentials: myCertCloudCredentials);
    

    下一步是调用 CreateOrUpdate,在参数中可以指定 RetryPolicy。这里以 http 作业为例...

    JobCreateOrUpdateResponse jobCreateResponse = mySchedClient.Jobs.CreateOrUpdate(
        jobId: SomeNameForTheJob,
        parameters: new JobCreateOrUpdateParameters
           {
              Action = new JobAction
                 {
                    Type = JobActionType.Http,
                    RetryPolicy = new RetryPolicy(RetryType.None),
                    Request = new JobHttpRequest
                       {
                          Uri = new Uri("http://www.cnn.com"), 
                          Method = "GET"
                       }
                 }
           });
    

    【讨论】:

    • @sagar 这在你的场景中真的有效吗?现在可以在“新”门户中更改重试策略,并且如前所述,我已将 RetryPolicy 设置为无,但我的工作仍以“错误”完成,并且消息指出它在 30 秒后超时。由于这是一个 Web 服务器,因此(当然)作业实际上仍然在服务器上运行,但是调度系统无法收集结果,这有点违背了目的。
    【解决方案2】:

    没有办法增加 azure 计划作业的超时时间。很遗憾;希望它会尽快添加。

    【讨论】:

      猜你喜欢
      • 2021-07-11
      • 1970-01-01
      • 2011-09-12
      • 1970-01-01
      • 2021-04-30
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多