将 Azure 生产中的 Continuous Webjob 交换到暂存槽
Swap Continuous Webjob in Azure production to staging slot
假设我在 Azure 中有一个 web 应用程序可以自动部署一个连续的 web 作业。此 Web 应用程序还有一个 production
和 staging
插槽,站点部署到 staging
,之后发生交换(手动或自动)以将最新的移动到 production
插槽。
此外,我们假设 production
webjob 是 运行 并在交换开始之前处理并通常执行它的工作。当部署到 staging
时,最新的 webjob 不会启动,因为 WEBJOBS_STOPPED = 1
配置设置被接受。
但是,交换完成后,之前在 production
现在在 staging
的 webjob 是否继续 运行?如果没有,它如何停止?什么时候停止?当 运行 webjob 从 production
插槽移动到 staging slot
时,WEBJOBS_STOPPED
标志何时开始生效?
我不能同时拥有两个 webjobs 运行 并且不清楚交换的行为是什么......使用 is_singleton
[=36= 很容易连续单例] 在 webjob 设置中,但是 "vertical" webjobs 运行 并没有出现同时交换被清楚地理解或记录。
关键是让 WEBJOBS_STOPPED=1
成为登台上的槽位设置,这样它始终是为登台设置的,而不是为生产设置的。这将保证您不会同时拥有两个 运行(除非在交换转换期间可能有几秒钟)。
有关交换如何工作的更深入的信息,请参阅 this post。
假设我在 Azure 中有一个 web 应用程序可以自动部署一个连续的 web 作业。此 Web 应用程序还有一个 production
和 staging
插槽,站点部署到 staging
,之后发生交换(手动或自动)以将最新的移动到 production
插槽。
此外,我们假设 production
webjob 是 运行 并在交换开始之前处理并通常执行它的工作。当部署到 staging
时,最新的 webjob 不会启动,因为 WEBJOBS_STOPPED = 1
配置设置被接受。
但是,交换完成后,之前在 production
现在在 staging
的 webjob 是否继续 运行?如果没有,它如何停止?什么时候停止?当 运行 webjob 从 production
插槽移动到 staging slot
时,WEBJOBS_STOPPED
标志何时开始生效?
我不能同时拥有两个 webjobs 运行 并且不清楚交换的行为是什么......使用 is_singleton
[=36= 很容易连续单例] 在 webjob 设置中,但是 "vertical" webjobs 运行 并没有出现同时交换被清楚地理解或记录。
关键是让 WEBJOBS_STOPPED=1
成为登台上的槽位设置,这样它始终是为登台设置的,而不是为生产设置的。这将保证您不会同时拥有两个 运行(除非在交换转换期间可能有几秒钟)。
有关交换如何工作的更深入的信息,请参阅 this post。