如何成功退出Azure Web作业?

时间:2016-12-02 07:38:10

标签: azure azure-webjobs

我有一个Azure Web作业,目前功能iself将始终成功完成。但是,作业本身会因此错误而失败:

[11/26/2016 07:12:11 > 462baa: ERR ] Command 'cmd /c ""MyJob.Webjob ...' was aborted due to no output nor CPU activity for 121 seconds. You can increase the SCM_COMMAND_IDLE_TIMEOUT app setting (or WEBJOBS_IDLE_TIMEOUT if this is a WebJob) if needed.
cmd /c ""MyJob.Webjob.StuffJob.exe""
[11/26/2016 07:12:11 > 462baa: SYS INFO] Status changed to Failed

一旦我的功能完成,我可以做些什么才能让工作知道它已经完成而不是闲着和超时?

这是我的函数类方法。一切都运行良好,但它没有正常停止,我不知道如何告诉我的工作。

[NoAutomaticTrigger()]
        public void ProcessLoanOriginationDocuments(TextWriter log)
        {
            try
            {
                log.WriteLine("Starting  Job");
                _service.DoSomething();
                log.WriteLine("Ending  Job");
            }
            catch (Exception ex)
            {
                log.WriteLine(ex.Message);
            }
        }

1 个答案:

答案 0 :(得分:0)

  

一旦我的功能完成,我可以做些什么才能让工作知道它已经完成而不是闲着和超时?

根据我的经验,我们需要将 WEBJOBS_IDLE_TIMEOUT 值设置得足够大,以便完全执行WebJob。

根据您的描述,天蓝色WebJob停止可能是由于网站处于空闲状态。请尝试按以下方式进行问题排查:

  1. 设置网站“Always On”
      

    " 始终开启"如果WebApp处于免费服务计划层,则不支持。如果WebApp处于免费套餐中,请扩展应用服务计划。有关如何扩展应用服务计划的详细信息,请参阅document

  2. enter image description here

    1. 在Azure门户中添加WEBJOBS_IDLE_TIMEOUT。有关WebApp设置的更多信息,请参阅document
    2. enter image description here

      1. 如果上述方法无法解决,请尝试继续写入控制台以保持WebJob正常运行。