我看到this SO question并且我得到了类似但不同的效果。我使用了来自Scheduling Azure WebJobs with cron expressions的信息并查看了触发的WebJob api:
latest_run.triggered
设置为“外部 - ”。latest_run.triggered
设置为“Schedule - * 10 * * * *”。日志显示它在一小时过去10次运行时多次运行(如19次!)。这是job_scheduler.log文件末尾的一个片段(我已经缩短了它.WebJob的最后两次调用分别运行了16次和19次。)
[03/10/2016 10:10:52 > bdda8b: SYS INFO] WebJob invoked
[03/10/2016 10:10:52 > bdda8b: SYS INFO] Next schedule expected in 00:00:00.2973642
[03/10/2016 10:10:53 > bdda8b: SYS INFO] Next schedule expected in 00:00:00.5786066
[03/10/2016 10:10:54 > bdda8b: SYS INFO] WebJob invoked
[03/10/2016 10:10:54 > bdda8b: SYS INFO] Next schedule expected in 00:00:00.4536019
[03/10/2016 10:10:55 > bdda8b: SYS INFO] WebJob invoked
[03/10/2016 10:10:55 > bdda8b: SYS INFO] Next schedule expected in 00:00:00.4067190
[03/10/2016 10:10:56 > bdda8b: SYS INFO] Next schedule expected in 00:00:00.7034940
[03/10/2016 10:10:57 > bdda8b: SYS INFO] WebJob invoked
[03/10/2016 10:10:57 > bdda8b: SYS INFO] Next schedule expected in 00:00:00.5629458
[03/10/2016 10:10:58 > bdda8b: SYS INFO] Next schedule expected in 00:00:00.0187612
[03/10/2016 10:11:00 > bdda8b: SYS INFO] WebJob invoked
[03/10/2016 10:11:00 > bdda8b: SYS INFO] Next schedule expected in 00:59:00.9405909
[03/10/2016 10:27:57 > bdda8b: SYS INFO] Scheduling WebJob with * 10 * * * * next schedule expected in 00:42:03.7574703
注意:job_scheduler文件不会显示小时运行时的0运行。但是,Azure WebJob Scheduler表示它当时正在运行。
如果我在Azure门户中手动触发WebJob,那么它只运行一次(根据Azure WebJob仪表板),所以看起来调度程序正在做一些有趣的事情。
我的WebJob是Web服务的一部分,并使用Publish与Web站点一起部署。我有一个触发的WebJob,设计为每小时运行一次。我的WebJob setting.job
文件如下所示:
{
//This will run every hour at 10 minutes past the hour
"schedule": "* 10 0-23 * * *"
}
和我的webjob-publish-settings.json文件(我认为不再使用)看起来像这样:
{
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
"webJobName": "PrintProcessorWebJob",
"startTime": "2014-06-23T00:00:00+08:00",
"endTime": "2020-01-01T00:00:00+01:00",
"jobRecurrenceFrequency": "Hour",
"interval": 1,
"runMode": "Scheduled"
}
我认为这是一个新问题,但在尝试诊断时我删除了现有的WebJob,因此我丢失了旧日志。我知道WebJobs的规则在开发期间发生了变化,也许我没有正确更新。
答案 0 :(得分:0)
主要问题是您的cron表达式不正确。 * 10 * * * *
表示“在每小时10分钟后每分钟运行一分钟”。相反,您需要0 10 * * * *
。
第二个问题是,您似乎需要删除Azure调度程序的剩余部分。尝试在调度程序下转到Azure门户,并删除任何不应存在的内容。您的webjob-publish-settings.json
应该看起来像this。