为什么我的Azure WebJob没有预定?

时间:2017-05-17 09:38:21

标签: c# asp.net-mvc azure azure-webjobs

我有一个ASP.NET MVC5应用程序在Azure中作为App Service运行,并希望安排WebJob每小时执行一次控制台应用程序。

在控制台应用程序中,我将webjob-publish-settings.json文件定义为:

{
  "$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
  "webJobName": "EpisodeUpdater",
  "startTime": "2017-05-01T00:00:00-08:00",
  "endTime": "2020-06-01T00:00:00-08:00",
  "jobRecurrenceFrequency": "Hour",
  "interval": 1,
  "runMode": "Scheduled"
}
  

当我查看Azure门户时,WebJob的类型似乎设置为已触发 - 当我手动启动它时,作业将成功运行,但它不会每小时执行一次。 / p>

WebJobs

WebJob properties

有人能看出为什么没有正确安排WebJob吗?

1 个答案:

答案 0 :(得分:6)

在某种程度上,没有计划作业。计划的WebJob只是一个由计时器触发的按需/触发WebJob。现在这个计时器可以是Azure Scheduler(这是VS工具用来创建的)或Kudu中的内置调度程序。

要使用内置调度程序,请在项目的根目录中创建名为settings.job的文件,并将其作为内容:

{
    "schedule": "0 0 * * * *"
}

那将每小时运行一次。它使用CRON表达式,在这种情况下定义它应该在秒和分钟为零时始终运行。现在这需要在应用程序中启用Always On。

文档:https://docs.microsoft.com/en-gb/azure/app-service/web-sites-create-web-jobs#CreateScheduledCRON