如何防止Azure WebJob在发布后启动?

时间:2014-07-01 14:58:43

标签: azure-webjobs

我们有一个Azure网站设置,其中包含" staging"部署插槽,我们使用连续的Azure WebJob来处理长时间运行的后台作业。看来,当您发布到网站(并包含WebJob二进制文件)时,如果以前停止过,WebJob将自动重启。

我们当前的部署过程如下所示:

  1. 部署到STAGING
  2. 立即&快速停止WebJob STAGING(试图防止2个WebJobs处理消息)
  3. STAGING上的冒烟测试和验证码
  4. 停止PRODUCTION WebJob(让它排空队列消息)
  5. 生产与分期之间的转换
  6. 启动PRODUCTION WebJob(只是STAGING WebJob)
  7. 是否有一个技巧(比如一个标志文件或其他东西)告诉WebJob在发布后不要启动?

3 个答案:

答案 0 :(得分:21)

要将处于停止状态的连续WebJob部署,只需在WebJob的根目录(二进制文件)中添加一个名为disable.job的文件,这将告诉框架WebJob当前已停止。

要查看此行为,您只需停止连续的WebJob,然后查看该文件是否已生成并放置在WebJob的目录中。

答案 1 :(得分:18)

您可以将应用设置WEBJOBS_STOPPED添加到您的暂存广告位并将其设置为1。将此设置设置为“Slot Setting”,以使其不与生产交换。

答案 2 :(得分:0)

AFAIK,没有开箱即用的解决方案。但是,您可以设置应用程序设置,并在启动时检查webjob代码。此外,您可以使用HTTP_HOST变量来确定环境。