2014-06-26 93 views
15

当我使用QueueTrigger(在app.config中定义的队列连接)部署连续运行的Azure WebJob到部署槽(例如“分段”)时会发生什么?Azure WebJobs和部署槽

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

我的担心是,如果只是开始处理来自队列的消息,即使它还没有在生产槽中处理过,也是如此。如果是这种情况,应该将队列连接字符串从app.config移到Azure Website配置中,以便我的Staging和Production插槽可以在不同的队列上运行?

回答

12

是的,它将开始在临时插槽中运行。

如果你不想要这个,那么将它指向一个分段队列确实是一条可行的路。

更新(2014年11月24日):您现在可以选择使用PowerShell将连接字符串'粘贴到插槽'&。有关详细信息,请参阅此post

+2

如果我们换分期W /生产......那么这意味着我必须去和手动重新配置我的队列吧?如果我为我的“舞台”插槽设置了“舞台”队列,那么当我交换时......我现在的“制作”(这只是“舞台演出”)仍将指向“舞台”队列, 对? – ericb

+3

你是对的,这是不理想的。我们正在努力通过允许一些设置变得“粘在插槽上”来改善情况。即如果您在临时插槽上设置了某些内容并将其标记为粘滞,则不会切换到生产。 –

+0

这听起来像我想要的。谢谢! – ericb

21

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

WEBJOBS_STOPPED = 1 

上的临时插槽。这将阻止Web作业在分段插槽上启动,并且当代码交换到生产时,该设置将保留在分段插槽中。

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

+0

这是一个很大的改进。 – Knelis

+1

只要记得检查“插槽设置”复选框,它确实会切换到生产。 – mlienau

+0

我在stage插槽上设置了这个值,但是在更新阶段(自动交换)之后,webjobs仍然在我的舞台插槽上运行。我错过了什么吗? – scojomodena