azure - 将 Azure 生产中的连续 Webjob 交换到暂存槽

标签 azure azure-web-app-service azure-webjobs

假设我在 Azure 中有一个 Web 应用程序,可以自动部署连续的 Web 作业。此 Web 应用程序还有一个 生产staging 插槽,并且站点部署到 staging,之后会发生交换(手动或自动)以移动最新进入生产槽。

此外,我们假设生产 Web作业正在运行和处理,并且通常在交换开始之前完成其工作。当部署到 staging 时,由于遵循 WEBJOBS_STOPPED = 1 配置设置,最新的 Webjob 不会启动。

但是,交换完成后,之前处于生产状态且现在处于暂存状态的Web作业是否继续运行?如果没有的话,怎么停止呢?什么时候停止?当正在运行的 Web 作业从生产 槽移动到暂存槽时,什么时候开始使用WEBJOBS_STOPPED 标志?

我无法同时运行两个 Web 作业,并且不清楚交换周围的行为是什么...使用 Web 作业设置中的 is_singleton 属性可以轻松实现连续单例,但是“垂直”围绕交换同时运行的网络作业似乎没有被清楚地理解或记录。

最佳答案

关键是在 Staging 上设置 WEBJOBS_STOPPED=1 插槽设置,以便它始终为 Staging 设置,而不是为 Production 设置。这将保证您不会同时运行两者(除了在交换转换期间可能运行几秒钟)。

参见this post有关交换如何工作的更深入的信息。

关于azure - 将 Azure 生产中的连续 Webjob 交换到暂存槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46573712/

相关文章:

azure - URL 缩短键/值分区/行键策略

azure - 如何调试azure应用程序服务

azure - Azure WebJob Sdk beta 0.5 中的 ServiceBusTrigger 批处理

c# - 同一服务器上多个 WebJob 的 Azure WebJob 应用程序洞察

Azure Webjob 支持异步执行(如果支持)如何?

azure - CMS 在 Azure 表存储之上运行?

azure - Terraform 与 A​​zure Key Vault 一起获取 secret 值

azure - 使用 Arm 或 Bicep 模板配置 Azure 函数身份验证

azure - 部署 Web App Linux 在容器中启动,即使发布模型是代码

c# - NoAutomaticTrigger 类型作业的连续 Azure WebJob 停止时的通知