Azure WebJobs和部署插槽

pbe*_*ing 20 azure azure-web-sites azure-webjobs

当我将带有QueueTrigger(在app.config中定义的队列连接)的连续运行的Azure WebJob部署到部署槽(例如"Staging")时会发生什么?

它会开始运行并收听队列中的消息,还是只会在生产槽中启动?

我担心的是,如果只是开始处理来自队列的消息,即使它还不在生产槽中.如果是这种情况,是否应将队列连接字符串从app.config移动到Azure网站配置中,以便我的暂存和生产插槽可以在不同的队列上运行?

Eri*_*oen 30

使用插槽粘性设置,您现在可以设置

WEBJOBS_STOPPED = 1
Run Code Online (Sandbox Code Playgroud)

在临时插槽上.这将阻止webjobs在暂存插槽上启动,并且当代码交换到生产环境时,设置将保留在暂存插槽中.

https://github.com/projectkudu/kudu/wiki/Web-jobs#configuration-settings


Dav*_*bbo 12

是的,它将开始在暂存槽中运行.

如果你不想这样做,那么将它指向一个临时队列确实是要走的路.

更新(2014年11月24日):您现在可以选择使用PowerShell使某些设置和连接字符串"粘贴到插槽".有关详细信息,请参阅此帖

  • 另一个问题 - 不确定它是否值得一个新的SO帖子 - 当你进行"交换"时,如果webjob当前正在运行会发生什么? (6认同)
  • 如果我们正在交换Staging w/Production ......那么这意味着我必须进入并手动重新配置我的队列吗?如果我为我的'staging'插槽设置'staging'队列,那么当我交换时...我现在的"生产"(这只是"暂存")仍将指向"staging"队列, 对? (3认同)
  • 你是对的,这并不理想.我们正在通过允许一些设置变得"粘到插槽"来改善这种情况.即如果您在暂存槽上设置了某些东西并将其标记为粘性,则它不会交换到生产中. (3认同)