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
,而不是 Continuous
。 RunAndBlock
这里不能使用方法
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。
希望对你有帮助。
我刚刚创建了一个 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
,而不是 Continuous
。 RunAndBlock
这里不能使用方法
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。
希望对你有帮助。