Azure 网络作业始终 "Running"

Azure webjob is always "Running"

我刚刚创建了一个 Azure Web 作业。我将其安排为每 1 分钟 运行:

0 */1 * * * *

这是代码

 var host = new JobHost();
 Console.WriteLine("Starting program...");
 var unityContainer = new UnityContainer();
 unityContainer.RegisterType<ProgramStarter, ProgramStarter>();
 unityContainer.RegisterType<IOutgoingEmailRepository, OutgoingEmailRepository>();
 unityContainer.RegisterType<IOutgoingEmailService, OutgoingEmailService>();
 unityContainer.RegisterType<IDapperHelper, DapperHelper>();

 //var game = unityContainer.Resolve<IOutgoingEmailRepository>();
 var program = unityContainer.Resolve<ProgramStarter>();
 program.Run().Wait();
 Console.WriteLine("All done....");

 host.RunAndBlock();

问题是状态永远不会更改为 "success"。我做错了吗?以下是我使用的应用程序设置,我应该更改吗?我也注意到运行是第一次,我相信这是因为它永远不会结束

您可以在 KUDU 上查看您的 webkjob 日志。

如果您在 RunAndBlock 场景中使用上述工作,那么您的工作必须是连续的。这意味着,进程将一直 运行。

显然,您在这里使用的是 Trigger webjob,而不是 ContinuousRunAndBlock这里不能使用方法

WEBJOBS_IDLE_TIMEOUT - Time in seconds after which we'll abort a running triggered job's process if it's in idle, has no cpu time or output (Only for triggered jobs).

另外,我注意到你把WEBJOBS_IDLE_TIMEOUT设置成了100000。好像这个值太大了,导致你的webjob在空闲的时候长时间不停。

您还可以通过在设置名称为 stopping_wait_time 的 settings.job 文件中指定(以秒为单位)来更改作业的宽限期,如下所示:

{ "stopping_wait_time": 60 }

更多详情,请参考此doc

希望对你有帮助。