几分钟后OnDemand WebJob失败

时间:2015-12-07 20:55:20

标签: c# azure azure-webjobs azure-webjobssdk

我刚刚创建了简单的Web作业,只是将某些内容写入控制台。这个工作应该按需运行,所以当我将它发布到Azure时,我将其设置为按需运行。

当我运行它时,它工作正常,但几分钟后它失败并显示以下消息。

  

[2015年12月12日18:07:20> f78915:ERR]命令'cmd / c TestJob.exe'是   由于121秒没有输出或CPU活动而中止。您可以   增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(或   如果需要,WEBJOBS_IDLE_TIMEOUT(如果这是WebJob)。 cmd / c   TestJob.exe [12/07/2015 18:07:20> f78915:SYS INFO]状态已更改为   失败

以下是该错误:

  

[2015年12月12日18:07:20> f78915:SYS ERR] System.AggregateException:   发生了一个或多个错误。 --->   Kudu.Core.Infrastructure.CommandLineException:命令'cmd / c   由于121没有输出或CPU活动,TestJob.exe'被中止   秒。您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(或   如果需要,WEBJOBS_IDLE_TIMEOUT(如果这是WebJob)。 cmd / c   TestJob.exe在   Kudu.Core.Infrastructure.IdleManager.WaitForExit(IProcess process)
  在Kudu.Core.Infrastructure.ProcessExtensions.d__a.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   Kudu.Core.Infrastructure.Executable.d__1d.MoveNext()
  ---内部异常堆栈跟踪结束---在System.Threading.Tasks.Task.ThrowIfExceptional(布尔值   includeTaskCanceledExceptions)at   System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task 1.get_Result()at   Kudu.Core.Infrastructure.Executable.ExecuteInternal(ITracer tracer,   Func 2 onWriteOutput, Func 2 onWriteError,Encoding encoding,String   arguments,Object [] args)at   Kudu.Core.Infrastructure.Executable.ExecuteReturnExitCode(的ITracer   tracer,Action 1 onWriteOutput, Action 1 onWriteError,String   arguments,Object [] args)at   Kudu.Core.Jobs.BaseJobRunner.RunJobInstance(JobBase job,IJobLogger)   logger,String runId,String trigger,Int32 port)   ---> (内部异常#0)ExitCode:-1,输出:命令'cmd / c TestJob.exe'因121没有输出或CPU活动而中止   秒。您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(或   如果需要,WEBJOBS_IDLE_TIMEOUT(如果这是WebJob)。,错误:命令   由于没有输出或CPU活动,'cmd / c TestJob.exe'被中止   121秒您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置   (如果需要,可以是WEBJOBS_IDLE_TIMEOUT,如果是WebJob),   Kudu.Core.Infrastructure.CommandLineException:命令'cmd / c   由于121没有输出或CPU活动,TestJob.exe'被中止   秒。您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(或   如果需要,WEBJOBS_IDLE_TIMEOUT(如果这是WebJob)。 cmd / c   TestJob.exe在   Kudu.Core.Infrastructure.IdleManager.WaitForExit(IProcess process)
  在Kudu.Core.Infrastructure.ProcessExtensions.d__a.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   Kudu.Core.Infrastructure.Executable.d__1d.MoveNext()< ---

以下是此网络作业的完整代码。

static void Main()
        {
            var host = new JobHost();
            Console.Out.WriteLine("Testing the test job...");
            host.RunAndBlock();
        }

我明白它失败了,因为没有活动,但它应该是按需运行的工作。我在哪里弄错了?

1 个答案:

答案 0 :(得分:5)

它是按需运行的工作与错误无关。当你告诉它时,这只是一份工作。

一段时间内没有做任何事情的工作(根据你得到的东西,121秒)将中止。