首页 > 解决方案 > Azure WebJob 未超时

问题描述

我正在运行一个触发的 Web 作业 - 每 15 分钟运行一次 - 它是一个控制台应用程序,可将数据从 SQL Server 移动到 Mongo 数据库。我已将 WEBJOBS_IDLE_TIMEOUT 和 SCM_COMMAND_IDLE_TIMEOUT 值配置为 3600。过去 5 天它处于空闲状态,并且没有中止或超时。我必须重新启动网络应用程序才能中止网络作业并重新启动它。

Azure Web 作业仪表板

有没有办法可以配置 web 作业应该在特定时间段后中止?

标签: azureazure-webjobs-triggered

解决方案


WEBJOBS_IDLE_TIMEOUT配置仅适用于您的 webjob 没有 CPU 和 IO 活动(请参阅Kudu wiki 中的WebJobs )

CPU 活动是通过Process.TotalProcessorTime测量的,而 IO 活动是通过检查 Web 作业的标准和错误输出流中的新字符来测量的。来源:IdleManager.WaitForExitExecutable.ExecuteInternal

如果可能,让您的网络作业在完成其工作后优雅地退出。如果您想强制中止仍在消耗 CPU 或 IO 的长时间运行的操作,则必须直接在您的 webjob 中对此进行编码。


推荐阅读