I know this seems like a stupid question, but what does "Pending Restart" mean? I have stopped and restarted my WebJob numerous times and that doesn't seem to fix it. Does it mean I have to restart my website? What caused my job to get in this state in the first place? Is there any way I can prevent this from happening in the future?
8 回答
通常,这意味着作业无法启动(异常?)。在作业仪表板中查找日志。
此外,请确保如果作业是连续的,您实际上有一个无限循环来保持进程处于活动状态。
为了补充维克多的答案,连续的 WebJob 状态是:
- 初始化- 站点刚刚启动,WebJob 正在执行它的初始化过程。
- 启动- WebJob 正在启动进程/脚本。
- Running - WebJob 的进程正在运行。
- PendingRestart - WebJob 的进程在启动后不到 2 分钟内退出(出于任何好的或坏的原因),对于连续的 WebJob,它被认为可能有问题(启动期间的一些异常可能正如 Victor 所提到的) ,此时系统在重新启动 WebJob 进程之前等待 60 秒(因此名称为“等待重新启动”)。
- 已停止- WebJob 已停止(通常来自 Azure 门户)并且当前未运行,并且在再次启动之前不会运行,最好的查看方式是disabled。
另外,请查看 webjob 日志,它应该可以提示正在发生的事情。
如果 JOB 设置为连续运行,则一旦进程退出(例如您正在轮询队列并且它是空的),该作业将关闭并且状态更改为“等待重新启动”。Azure 调度程序通常会在 60 秒内重新启动该过程。
尝试将目标框架更改为 .NET 4.5。当我将目标框架从 4.6.1 更改为 4.5 时,我也解决了同样的问题。
有同样的问题,发现我需要让我的网络作业保持活力,所以我放了一个连续循环来保持它的活力。
这只是因为 Webjobs 失败或出现异常。确保 Webjobs 是连续的,您可以在日志中检查它失败的地方并可以进行更改。
进程停止,等待 60 秒状态更改为等待重启
在我的例子中,我们通过 Visual Studio 文件夹发布准备了部署包,并与 WebApp 一起部署。通过“文件夹发布”创建的包缺少“run.cmd”文件,在该文件中可以使用调用控制台应用程序 (.exe) 的命令;当我们从 Visual Studio 直接发布到 Azure WebJob 时,会自动创建此文件。
手动将其添加到包文件夹后,问题得到解决。
这意味着应用程序在启动后失败。检查应用服务应用程序设置可能有问题。..在我的情况下,我将日期作为配置传递,并且输入了错误的日期,例如 20160431