我在Azure上托管了一个长时间运行的触发式Webjob,每天运行一次。在大多数情况下,运行时间大约为一个小时,成功处理了该事件,但是我不时在Kudu中处于“异常终止”状态,运行时间“小于1毫秒”。正如我所看到的,AppInsights跟踪显示,该作业实际上一直在运行,但由于某种原因,Kudu立即将其标记为“中止”。
在Service App设置中,Always On(始终打开)设置为true,并且它承载许多其他不受此类问题困扰的作业。
能否请您解释此行为的原因以及如何解决此问题?
答案 0 :(得分:0)
如果您已经启用了常亮,则可能是因为长时间运行的作业可能正在后台运行,但是对接SCM不知道。
因此,在这种情况下,您可以在应用程序服务中的configure下将WEBJOBS_IDLE_TIMEOUT
(大部分就足够了)和/或SCM_COMMAND_IDLE_TIMEOUT
(简单地将它们都设置)设置为较高的值。这是秒数,直到Kudu杀死在给定时间段内没有任何请求或输出的WebJob为止的时间。您可以参考此doc。