14

我们有一个带有“暂存”部署槽的 Azure 网站设置,并且我们使用连续的 Azure WebJob 来处理长时间运行的后台作业。看来,当您发布到网站(并包含 WebJob 二进制文件)时,如果 WebJob 之前停止,它将重新启动它自己。

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

  1. 部署到 STAGING
  2. 立即快速停止 STAGING 上的 WebJob(尝试阻止 2 个 WebJobs 处理消息)
  3. 冒烟测试和验证 STAGING 作品的代码
  4. 停止 PRODUCTION WebJob(让它排出队列消息)
  5. 在 PRODUCTION 和 STAGING 之间切换
  6. 启动 PRODUCTION WebJob(这只是 STAGING WebJob)

是否有技巧(比如标志文件或其他东西)告诉 WebJob 在发布后不要启动?

4

3 回答 3

21

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

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

于 2014-07-02T17:12:21.363 回答
21

您可以将应用程序设置添加WEBJOBS_STOPPED到暂存槽并将其设置为1. 将此设置设置为“插槽设置”,以便不与生产交换。

于 2016-01-04T18:19:27.270 回答
0

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

于 2014-07-01T16:16:45.217 回答