2014-06-26 92 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