Scheduled Azure WebJob deployed via Git results in On Demand Job

余生长醉 提交于 2020-01-01 04:12:08

问题


I have a Git-Enabled ASP.NET WebApp with one associated Azure WebJob. When I deploy this via Visual Studio everything is fine, but this is kinda hard in a Continuous Delivery Environment so I would like to publish the Web App and the WebJob via Git.

Via the Azure Tooling I associated my WebJob project and I got a "webjobs-list.json" file inside the WebApp Project:

{
"$schema": "http://schemastore.org/schemas/json/webjobs-list.json",
"WebJobs": [{
  "filePath": "../CodeInside.Hub.Job/CodeInside.Hub.Job.csproj"
  }]
}


webjobs-list.json Source

Inside the Console App Project I got a "webjob-publish-settings.json" file with this content:

{
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
"webJobName": "Hub-Crawler",
"startTime": "2014-11-25T02:00:00+01:00",
"endTime": null,
"jobRecurrenceFrequency": "Day",
"interval": 1,
"runMode": "Scheduled"
}

webjob-publish-settings.json

As you can see the "runMode" is set to "Scheduled" and everything is fine when I deploy it via Visual Studio.

But without Visual Studio I got this "on demand" WebJob:

Is this currently not supported or what could be the problem?

The complete .sln can be found on GitHub


回答1:


There is finally a solution for deploying scheduled webjobs with git deployment.

This blog has details.

The solution uses the kudu scheduler as opposed to the Azure scheduler so the Azure portal still shows the job as "On Demand" but it does execute per schedule and the portal shows history accurately.




回答2:


Indeed, the problem is that the scenario is not yet well supported. Specifically, when publishing via git (or GitHub/Bitbucket), the webjob-publish-settings.json file is ignored.

One workaround is to publish once using VS just to get the scheduler created, and then use git afterwards.

Eventually, this scenario will be solved by using Azure Resource Manager templates that define both the WebSite and the scheduler. Technically, this can be done today, but there is not much documentation out there yet.




回答3:


Until there's a better supported mechanism for this from Azure, you could look into scripting this out using PowerShell. See: Create a Scheduled Azure WebJob with PowerShell



来源:https://stackoverflow.com/questions/27158266/scheduled-azure-webjob-deployed-via-git-results-in-on-demand-job

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!