长时间运行的计划WebJob由Azure中止

时间:2017-01-04 06:34:50

标签: azure azure-web-sites azure-webjobs

我在Azure WebApp上有一个Azure预定的Web作业。在web作业中,它从azure blob下载excel文件并读取(文件中25-30k记录),然后迭代循环以在数据库中插入记录。现在,当我们第一次安排(安排时间:18小时)作业成功运行并处理文件中的所有记录而没有任何中断时(在此时间站点之间访问)。但是,下次失败(中止)没有任何理由(没有人访问过网站。可能处于空闲状态)。

WebJob Abort Status

当我查看日志时没有任何迹象。但是,第一个计划成功运行并显示成功状态以后所有都处于已中止状态,为什么?

Success

还完成了webapp中的以下设置:

stops_wait_time - 3600
WEBJOBS_IDLE_TIMEOUT - 3600
SCM_COMMAND_IDLE_TIMEOUT - 121

1 个答案:

答案 0 :(得分:2)

Azure's documentation

  

<强> Always On 即可。默认情况下,如果Web应用程序对某些应用程序空闲,则会将其卸载   一段的时间。这使系统可以节省资源。在Basic或   在标准模式下,您可以启用Always On以保持应用程序全部加载   时间。如果您的应用运行连续的Web作业,则应启用“始终”   打开,或者Web作业可能无法可靠地运行。

因此,Azure Web Apps没有承诺让您的WebJob继续运行超过20分钟。如果您需要依赖,则需要启用Always On。启用它。见下文。

  1. Azure Portal中,导航至您的应用服务。
  2. 点击设置菜单中的应用程序设置
  3. Always On设为开,然后点击保存
  4. 图片中显示:

    enter image description here

    如果您使用的是免费的Azure层,也许这个主题可以帮助您:How can I keep my Azure WebJob running without "Always On"