通过Git部署的计划Azure WebJob会导致按需作业

时间:2014-11-26 20:26:57

标签: git azure continuous-deployment azure-webjobs

我有一个启用了Git的ASP.NET WebApp,其中包含一个关联的Azure WebJob。当我通过Visual Studio部署它时,一切都很好,但在连续交付环境中这有点难,所以我想通过Git发布Web应用程序和WebJob。

通过Azure工具我关联了我的WebJob项目,我在WebApp项目中获得了一个“webjobs-list.json”文件:

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


webjobs-list.json Source

在Console App Project中,我收到了一个包含以下内容的“webjob-publish-settings.json”文件:

{
"$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

正如您所看到的,“runMode”设置为“Scheduled”,当我通过Visual Studio部署它时一切正常。

但是没有Visual Studio我得到了这个“按需”WebJob: enter image description here

目前不支持或可能出现什么问题?

完整的.sln可以在GitHub

找到

3 个答案:

答案 0 :(得分:6)

事实上,问题是该方案尚未得到很好的支持。具体来说,当通过git(或GitHub / Bitbucket)发布时,webjob-publish-settings.json文件将被忽略。

一种解决方法是使用VS发布一次只是为了创建调度程序,然后使用git。

最终,此方案将通过使用定义WebSite和调度程序的Azure Resource Manager模板来解决。从技术上讲,这可以在今天完成,但目前还没有太多的文档。

答案 1 :(得分:5)

最后有一个使用git部署部署预定webjobs的解决方案。

This博客有详细信息。

该解决方案使用kudu调度程序而不是Azure调度程序,因此Azure门户仍将作业显示为“按需”,但它确实按计划执行,门户网站准确显示历史记录。

答案 2 :(得分:0)

在Azure中为此提供更好的支持机制之前,您可以使用PowerShell查看脚本。请参阅:Create a Scheduled Azure WebJob with PowerShell