长时间运行触发的WebJob由Azure中止,并且还设置了SCM_COMMAND_IDLE_TIMEOUT

时间:2017-02-18 04:51:52

标签: azure-webjobs

我有一个触发式Web作业,它是一个控制台应用程序。我通过压缩Console App的Debug文件夹来部署它。我的工作必须持续到完成。我没有看到任何错误,并在1或2小时后中止。我在应用程序服务的应用程序设置中将SCM_COMMAND_IDLE_TIMEOUT设置为36000,这是插槽设置。它仍在中止..我在这里搜索,发现我们需要Console.Write来进行Web作业。我已经登录了我的WebJob,它也使用System.Trace.TraceInformation和Console.Write进行日志记录。它仍在中止。

任何人都可以帮助我,为什么我的工作仍在中止。

2 个答案:

答案 0 :(得分:1)

我建议您进入托管WebJob的Web App,并在Application Settings刀片的App设置部分下添加WEBJOBS_IDLE_TIMEOUT(不是SCM_COMMAND_IDLE_TIMEOUT)的条目。这是时间,以秒为单位,直到Kudu将杀死在给定时间段内没有任何请求或输出的WebJob。将它设置为极高的东西。它仅适用于触发的WebJobs。您可以阅读有关它的文档here

答案 1 :(得分:1)

如果Azure门户上没有打开始终开启,请启用它。更多详细信息,请参阅另一个SO thread。我们还可以从官方文档中获取有关WebJobWebApp appsetting的更多信息。

  

如果我们不将它始终打开,WebJob可能会在空闲状态下中止一段时间。如果Web应用程序闲置一段时间,则会将其卸载。这使系统可以节省资源。请尝试设置Always On以始终保持应用程序加载。