当前位置:  开发笔记 > 编程语言 > 正文

OnDemand WebJob在几分钟后失败

如何解决《OnDemandWebJob在几分钟后失败》经验,为你挑选了1个好方法。

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

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

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

以下是该错误:

[12/07/2015 18:07:20> f78915:SYS ERR] System.AggregateException:发生一个或多个错误.---> Kudu.Core.Infrastructure.CommandLineException:命令'cmd/c TestJob.exe'因121秒无输出或CPU活动而中止.如果需要,您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(如果这是WebJob,则增加WEBJOBS_IDLE_TIMEOUT).在Kudu.Core.Infrastructure.ProcessExtensions.d__a.MoveNext()的Kudu.Core.Infrastructure.IdleManager.WaitForExit(IProcess进程)
中的cmd/c TestJob.exe - 从抛出异常的上一个位置开始的堆栈跟踪结束 - -在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务的任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务的任务)在Kudu.Core.Infrastructure.Executable.d__1d.MoveNext()
---内部异常结束堆栈跟踪---在System.Threading.Tasks.Task.ThrowIfExceptional(布尔includeTaskCanceledExceptions)在System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task1.get_Result()在Kudu.Core.Infrastructure.Executable.ExecuteInternal(的ITracer示踪剂,Func键2 onWriteOutput, Func2 onWriteError,编码方式进行编码,字符串参数,对象[]在Kudu.Core.Infrastructure.Executable.ExecuteReturnExitCode参数)(的ITracer示踪剂,动作1 onWriteOutput, Action1个onWriteError,字符串参数,对象[]在Kudu.Core.Jobs.BaseJobRunner.RunJobInstance参数)(JobBase作业,IJobLogger记录器,字符串 runId,String trigger,Int32 port)--->(内部异常#0)ExitCode:-1,输出:命令'cmd/c TestJob.exe'因121秒无输出或CPU活动而中止.如果需要,您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(或WEBJOBS_IDLE_TIMEOUT,如果这是WebJob).,错误:命令'cmd/c TestJob.exe'由于121秒没有输出或CPU活动而中止.可以增加SCM_COMMAND_IDLE_TIMEOUT应用设置(或WEBJOBS_IDLE_TIMEOUT如果这是一个WebJob)如果需要的话,Kudu.Core.Infrastructure.CommandLineException:命令"CMD/C TestJob.exe"被中止由于对121秒没有输出,也没有CPU活性.如果需要,您可以增加SCM_COMMAND_IDLE_TIMEOUT应用程序设置(如果这是WebJob,则增加WEBJOBS_IDLE_TIMEOUT).在Kudu.Core.Infrastructure.ProcessExtensions.d__a.MoveNext()的Kudu.Core.Infrastructure.IdleManager.WaitForExit(IProcess进程)
中的cmd/c TestJob.exe - 从抛出异常的上一个位置开始的堆栈跟踪结束 - -在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务的任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务的任务)在Kudu.Core.Infrastructure.Executable.d__1d.MoveNext()<---

这是此Web作业的完整代码.

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

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



1> Maria Ines P..:

事实上,这是一个按需运行的工作与错误无关.当你告诉它时,这只是一项工作.

在一段时间内没有做任何事情的工作(根据你所得到的121秒)将中止.


从它的外观来看,你的工作除了打印到控制台外什么都不做.所以调用`host.RunAndBlock();`是不必要的; 该行用于连续的webjobs.
推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有