让我们说我在Azure中有一个自动部署连续webjob的webapp。此网络应用程序还有一个production
和staging
广告位,网站部署到staging
,然后进行交换(手动或自动)以将最新信息移至production
槽。
此外,让我们假设production
webjob正在运行和处理,并且通常在交换开始之前完成它的工作。当部署到staging
时,由于WEBJOBS_STOPPED = 1
配置设置被授予,最新的webjob无法启动。
但是,在交换完成之后,之前位于production
并且现在位于staging
的webjob是否继续运行?如果没有,它是如何停止的?什么时候停止?当正在运行的webjob从WEBJOBS_STOPPED
广告位移至production
时,staging slot
标志何时开始受到尊重?
我无法同时运行两个网络工作,并且不清楚交换周围的行为是什么......使用webjob中的is_singleton
属性可以轻松实现连续单例设置,但在交换的同时运行的 "垂直" webjobs似乎没有被清楚地理解或记录。
答案 0 :(得分:6)
关键是在暂存时设置WEBJOBS_STOPPED=1
一个插槽设置,以便始终为暂存设置,从不设置为生产。这将保证您不会同时运行(除了在交换过渡期间可能持续几秒钟)。
有关交换如何工作的更深入信息,请参阅this post。