将Azure生产中的连续Webjob交换到临时插槽

时间:2017-10-04 20:34:22

标签: azure azure-web-sites azure-webjobs

让我们说我在Azure中有一个自动部署连续webjob的webapp。此网络应用程序还有一个productionstaging广告位,网站部署到staging,然后进行交换(手动或自动)以将最新信息移至production槽。

此外,让我们假设production webjob正在运行和处理,并且通常在交换开始之前完成它的工作。当部署到staging时,由于WEBJOBS_STOPPED = 1配置设置被授予,最新的webjob无法启动。

但是,在交换完成之后,之前位于production并且现在位于staging的webjob是否继续运行?如果没有,它是如何停止的?什么时候停止?当正在运行的webjob从WEBJOBS_STOPPED广告位移至production时,staging slot标志何时开始受到尊重?

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

1 个答案:

答案 0 :(得分:6)

关键是在暂存时设置WEBJOBS_STOPPED=1一个插槽设置,以便始终为暂存设置,从不设置为生产。这将保证您不会同时运行(除了在交换过渡期间可能持续几秒钟)。

有关交换如何工作的更深入信息,请参阅this post