San*_*dke 18 azure-web-sites azure-webjobs
我有一个Azure网站,其中包含一个包含多个实例的生产和临时插槽.
我在网站上运行了几个Azure webjobs,其中一些是触发其他连续的.
据我所知,触发的webjobs只能在一个实例上运行一次.
我目前的设置是:
生产站点除了从分段交换之外没有其他部署
暂存网站设置为从bitbucket持续部署
使用"发布到Azure"将Webjobs从VS内部署到生产槽(因为AFAIK不支持基于计划的webjobs的连续部署)
该网站的VS解决方案与包含webjobs的VS解决方案不同
我注意到当我交换生产和分期时,webjobs也被交换了!当我将新的webjob部署到生产中并随后进行网站部署然后进行交换时,我意识到了这一点,新部署的webjob不再位于生产槽中!
我的问题:
是否有可能阻止webjobs在生产和分期之间交换(webjobs实际上是完全不同的代码片段而不是网站)
什么是交换webjobs?二进制文件?时间表?两个?
如何阻止所有webjobs在临时插槽上运行?我的webjobs不需要高度可用,我可以轻松地离线测试它们.
如果我VS将webjobs部署到临时插槽并进行交换,那么当前的暂存插槽将缺少已部署的webjob,当我进行下一次网站更新时,我将丢失它,那么我应该在哪里部署我的webjobs?
有一个相关的线程,但它假设webjob与一个网站同时部署,这不是我目前的.
我真的很喜欢网站和webjobs,但似乎与连续独立部署webjobs和网站有关的故事被打破了.
真的很感激建议!
谢谢
Ami*_*ple 29
Azure网站部署插槽并不是一个易于理解的概念,与WebJobs一起使用起来有点困难.
我建议阅读以下帖子以更好地了解部署插槽 - http://blog.amitapple.com/post/2014/11/azure-websites-slots/(包括有用信息的评论部分)
要更好地了解WebJobs的工作和部署方式,请参阅此帖子 - http://blog.amitapple.com/post/74215124623/deploy-azure-webjobs/
重要的是要了解:
因此,当你交换插槽时,你实际上交换了网站文件,包括WebJob.
请注意,直接部署WebJob是一种不好的做法,而不是作为网站文件/存储库的一部分,这可能是您遇到问题的原因.
要阻止WebJobs在登台槽上运行,您可以添加一个名为的应用程序设置WEBJOBS_STOPPED并将其设置为1(在azure门户中).(来源).确保此应用程序设置对插槽是粘性的,否则它将传播到生产槽.
迄今为止,解决此问题的最简单方法是为您的 Web 作业创建一个单独的 Web 应用程序。只需将 Worker Web 应用程序放在同一个 Azure 服务计划上,您就会在同一台机器上运行两个单独的 Web 应用程序。
web-app web-app-worker
| 归档时间: |
|
| 查看次数: |
5288 次 |
| 最近记录: |