Azure webjob 日志在 Kudu 中中止,即使保持 运行
Azure webjob logs Aborted in Kudu even though keeps running
我在 Azure 上托管了一个长时间 运行 触发的网络作业,每天运行一次。在大多数情况下,它会在 运行 大约一个小时的时间内成功处理,但有时我会在 Kudu 中以 运行 的时间 "less than 1ms" 获得中止状态。该作业实际上保持 运行,因为我可以看到出现 AppInsights 跟踪,但出于某种原因,Kudu 立即将其标记为已中止。
Always On 在 Service App 设置中设置为 true,它托管许多其他不会遇到此类问题的作业。
能否请您解释一下这种行为的原因以及我该如何解决这个问题?
如果你已经启用了永远在线,这可能是因为长时间的运行作业可能在后台运行,但是SCM不知道它。
所以在这种情况下,您可以在您的配置下将 WEBJOBS_IDLE_TIMEOUT
(大多数情况下这就足够了)and/or SCM_COMMAND_IDLE_TIMEOUT
(只需将它们都设置)设置为高值应用程序服务。这是 Kudu 杀死在给定时间段内没有任何请求或输出的 WebJob 之前的时间(以秒为单位)。你可以参考这个doc.
我在 Azure 上托管了一个长时间 运行 触发的网络作业,每天运行一次。在大多数情况下,它会在 运行 大约一个小时的时间内成功处理,但有时我会在 Kudu 中以 运行 的时间 "less than 1ms" 获得中止状态。该作业实际上保持 运行,因为我可以看到出现 AppInsights 跟踪,但出于某种原因,Kudu 立即将其标记为已中止。
Always On 在 Service App 设置中设置为 true,它托管许多其他不会遇到此类问题的作业。
能否请您解释一下这种行为的原因以及我该如何解决这个问题?
如果你已经启用了永远在线,这可能是因为长时间的运行作业可能在后台运行,但是SCM不知道它。
所以在这种情况下,您可以在您的配置下将 WEBJOBS_IDLE_TIMEOUT
(大多数情况下这就足够了)and/or SCM_COMMAND_IDLE_TIMEOUT
(只需将它们都设置)设置为高值应用程序服务。这是 Kudu 杀死在给定时间段内没有任何请求或输出的 WebJob 之前的时间(以秒为单位)。你可以参考这个doc.