我有一个使用每小时运行一次的SDK创建的Azure webjob。作业可以正常运行,但是当我在门户中查看该作业时,它始终显示“失败”。我可以从调试控制台运行该作业,并且一切正常。从控制台运行时,作业通常需要几秒钟才能运行,但是按计划运行时,通常会显示12-20分钟,然后才失败。
我如何获得更多有关失败原因的详细信息?我需要以某种方式告诉webjobs任务完成并且正在等待我吗?
谢谢,拉斯
如果作业使用TimerTrigger
,则会发生此错误。
如果作业长时间运行,请在Azure应用程序设置中使用WEBJOBS_IDLE_TIMEOUT
和SCM_COMMAND_IDLE_TIMEOUT
而不是web.config
。
如果该作业不是长时间运行的,则其排定的计时器应少于2分钟,这可能仅适用于测试。
最后,最终的解决方案是使用AppPlan的Basic
或Standard
产品。在这种情况下,您可以启用Always On
以使容器始终保持加载状态。但是,还必须如上所述设置WEBJOBS_IDLE_TIMEOUT
和SCM_COMMAND_IDLE_TIMEOUT
。连续WebJobs或使用不带Always On
的CRON(TimerTrigger)表达式触发的WebJobs将无法可靠运行。
有关更多详细信息,您可以参考此article。