我遇到一个问题,我创建的Azure WebJob(在Web App上)没有使用我指定的cronjob Trigger运行。我可以单击WebJob,然后单击运行,它运行正常,没有错误。门户网站中WebJobs的屏幕截图如下所示。
如您所见,触发器设置为每天上午9:30运行,但它永远不会按触发器自动运行,只能手动使用Run。 WebJob本身设置为运行.exe文件中包含的.exe文件。
答案 0 :(得分:8)
您需要确保在App中启用了Always On,这要求它在Basic或更高模式下运行。
答案 1 :(得分:1)
正如David Ebbo的回答所述,如果您的CRON表达不正确,则不会自动触发webjob。
在此piece of relevant MS documentation中,提到了以下CRON表达式,但不起作用:
{
"schedule": "0 */15 * * * *"
}
相反,请使用:
{
"schedule": "0 0/15 * * * *"
}
这样我每15分钟就会运行一次webjob。
答案 2 :(得分:0)
只需将其放在此处给Google员工即可。
请记住Azure在UTC时间运行,因此您所在时区的9:30在Azure时间可能有所不同。
我是PST,所以如果我想在9:30运行某些内容,请将CRON表达式设置为16:30。如果您需要在正好9:30执行作业,那么夏时制就会成为问题,您将需要更改CRON表达式,因为UTC不会随DST更改。
答案 3 :(得分:0)
遇到了类似的问题。参考下面的链接
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格式
{秒} {分钟} {小时} {日} {月} {星期几}
每天早上9.30运行网络作业将是
{"schedule":"0 30 9 * * *"}
还要检查天蓝色webjobs中安排的时间和您的本地时间。