Azure WebJob具有状态"从未完成"在WebJobs仪表板中

时间:2018-05-09 16:30:24

标签: azure azure-webjobs

我在AppService中运行了很长时间的Web作业(大约1小时)。 AppService已经"永远在"打开了。

初始化为:

var host = new JobHost(config);
host.Call(typeof(Functions).GetMethod("SyncUsers"));
host.Start();

包含属性的实际方法SyncUsers:

[Timeout("00:59:00", ThrowOnTimeout = true)]
[NoAutomaticTrigger]

使用设置文件settings.job设置计划:

{
  "is_singleton": true,
  "schedule": "0 0 */4 * * *"
}

主要问题是在WebJobs Dashboard中我看到状态"从未完成"在90%的情况下(或失败,例外 - 好的情况)。这些工作的运行时间是不同的:从5分钟到30分钟。日志在某个时刻停止,没有任何异常或详细消息。

另一件事是我可以看到多个作业同时运行。所以看起来像单身和计划不工作(因为工作应该每4小时运行一次)。 还有一些具有此状态的作业,没有运行时间显示,如下所示:" 1小时前(运行时间)"我无法查看日志或下载它们。

有人有这样的经历吗?

谢谢

1 个答案:

答案 0 :(得分:0)

看起来你正在尝试运行一个永远不会以触发的WebJob结束的可执行文件,它无法工作。你需要:

  1. 使用连续的WebJob并依赖WebJobs SDK作为计时器
  2. 使用部署为计划WebJob的普通控制台应用程序。无需在此处使用SDK。只需从你的Main()做你需要做的事情并让它结束。
  3. 除非您特别需要使用WebJobs SDK,否则我建议#2。