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

Mik*_*nfo 3 azure azure-web-sites azure-webjobs

假设我在Azure中有一个自动部署连续webjob的webapp.此webapp还有一个productionstaging插槽,并且站点部署到staging,之后发生交换(手动或自动)以将最新的移动到production插槽中.

此外,我们假设productionwebjob正在运行和处理,并且通常在交换开始之前完成它的工作.当部署staging发生时,由于WEBJOBS_STOPPED = 1受到尊重的配置设置,最新的webjob无法启动.

但是,在交换完成之后,以前进入production并且现在正在staging继续运行的webjob是什么?如果没有,它是如何停止的?什么时候停止?当WEBJOBS_STOPPED正在运行的webjob从production插槽移动到staging slot?时,标志何时开始被尊重?

我不能在同一时间运行两个webjobs和目前还不清楚周围的交换行为是什么...连续单身很容易使用is_singleton的webjob设置属性,但"垂直" webjobs在围绕同一时间运行交换似乎没有被清楚地理解或记录.

Dav*_*bbo 6

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

有关交换如何工作的更深入信息,请参阅此文章.

  • 作为交换的一部分,两个插槽都重新启动.这确实可以导致一些非常长的处理中止. (3认同)