Azure WebJob 未按计划 运行

Azure WebJob not running as per schedule

我有一个问题,即我创建的 Azure WebJob(在 Web 应用程序上)没有 运行使用我指定的 cronjob 触发器。我可以单击 WebJob,然后单击 运行,它 运行 正常,没有错误。门户中 WebJobs 的屏幕截图如下所示。


如您所见,每天上午 9:30 将触发器设置为 运行,但它永远不会根据触发器自动 运行,只能手动使用 运行。 WebJob 本身设置为 运行 包含在 .zip 中的 .exe。

以下是我在创建 WebJob 时使用的设置。

您需要确保在您的应用程序中启用了 Always On,这需要它 运行 在基本或更高模式下。

详情见https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/#CreateScheduledCRON

正如 David Ebbo 的回答的评论中提到的,如果您的 CRON 表达式不正确,webjob 将不会自动触发。

在此 piece of relevant MS documentation 中,提到了以下 CRON 表达式但不起作用:

{
"schedule": "0 */15 * * * *"
}

改为使用:

{
"schedule": "0 0/15 * * * *"
}

通过这种方式,我每 15 分钟 运行 获得一次网络作业。

只是把它放在这里供 google 员工使用。

请记住,Azure 的 运行 是 UTC 时间,因此您所在时区的 9:30 可能与 Azure 时间不同。

我是 PST,所以如果我想 运行 在 9:30 做一些事情,我将我的 CRON 表达式设置为 16:30。如果您需要您的作业恰好在 9:30 执行,这将成为夏令时的问题,您将需要更改 CRON 表达式,因为 UTC 不会随 DST 更改。

面对类似的 issue.With 参考下面 link

https://raskarovblog.wordpress.com/2017/03/16/why-is-my-azure-webjob-cron-expression-is-not-working/

Azure 团队声明 Azure WebJob CRON 使用带有六个参数的 NCronTab(不接受五个和七个参数)。

如果您查看 NCronTab 文档,您会注意到它们使用了 5 个参数。 Azure 团队解释说,他们还传递了 NCronTab 默认不使用的“Seconds”参数。

cron 格式如下

{second} {minute} {hour} {day} {month} {星期几}

至运行每天上午 9.30 的网络工作将是

{"schedule":"0 30 9 * * *"}

还要检查 azure webjobs 中安排的时间和您的当地时间。