如何防止 Azure webjobs 在 Azure 网站生产 <--> 暂存槽中被交换

2024-03-04

我有一个 Azure 网站,其中包含具有多个实例的生产和暂存槽。

我在网站上运行多个 Azure Web 作业,其中一些是触发的,另一些是连续的。

据我所知,触发的网络作业只会在一个实例上运行一次。

我当前的设置是:

  • 生产站点除了从暂存交换之外没有任何部署

  • 暂存网站已设置为从 bitbucket 持续部署

  • 使用“发布到 Azure”将 Web 作业从 VS 内部署到生产槽(因为据我所知,不支持基于计划的 Web 作业的持续部署)

  • 网站的VS解决方案与包含webjobs的VS解决方案不同

我注意到当我交换生产和登台时,网络作业也会交换! 当我将一个新的 webjob 部署到生产环境并随后进行网站部署并进行交换时,我意识到这一点,新部署的 webjob 不再位于生产槽中!

我的问题:

  1. 是否可以阻止 webjobs 在生产和登台之间交换(webjobs 实际上是与网站完全不同的代码片段)

  2. webjobs 到底换了什么?二进制文件?日程?两个都 ?

  3. 如何防止所有网络作业在暂存槽上运行?我的网络作业不需要具有高可用性,我可以轻松地离线测试它们。

  4. 如果我 VS 将 webjobs 部署到暂存槽并进行交换,那么当前的暂存槽将缺少已部署的 webjob,并且当我进行下一次网站更新时我将丢失它,那么我应该在哪里部署我的 webjobs?

有一个相关主题 https://stackoverflow.com/questions/24438789/azure-webjobs-and-deployment-slots但它假设网络作业与网站同时部署,而这不是我目前拥有的网站。

我真的很喜欢网站和webjobs,但是与持续独立部署webjobs和网站相关的故事似乎已经被打破了。

非常感谢建议!

Thanks


Azure 网站部署槽并不是一个容易理解的概念,与 WebJobs 一起使用会变得更加困难。

我建议阅读以下文章以更好地了解部署槽 -http://blog.amitapple.com/post/2014/11/azure-websites-slots/ http://blog.amitapple.com/post/2014/11/azure-websites-slots/(包括有用信息的评论部分)

要更好地了解 WebJobs 如何工作和部署,请参阅这篇文章 -http://blog.amitapple.com/post/74215124623/deploy-azure-webjobs/ http://blog.amitapple.com/post/74215124623/deploy-azure-webjobs/

重要的是要理解:

  1. 交换部署槽时,您实际上是在两个槽之间交换网站的内容/文件。
  2. WebJobs 是网站内容的一部分。

因此,当您交换插槽时,您实际上交换了包括 WebJob 在内的网站文件。

请注意,直接部署 WebJob 而不是作为网站文件/存储库的一部分部署是一种不好的做法,这可能是导致您遇到问题的原因。

要防止 WebJobs 在暂存槽上运行,您可以添加一个名为的应用程序设置WEBJOBS_STOPPED并将其设置为1(在天蓝色门户中)。 (source https://github.com/projectkudu/kudu/wiki/Web-jobs#configuration-settings)。确保此应用程序设置为粘在插槽上否则它会传播到生产槽。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止 Azure webjobs 在 Azure 网站生产 <--> 暂存槽中被交换 的相关文章

随机推荐