2016-12-02 427 views
3

我已經使用手動觸發器創建了一個天藍色的服務總線和一個新的邏輯應用程序。然後,我添加一個「從隊列中獲取消息(peek-lock)」動作到應用程序,並將最大消息數設置爲「20」。從隊列中獲取消息只檢索單條消息

然後我手動在隊列中創建5條新消息,然後觸發我的新邏輯應用程序。然後,當我查看應用程序的執行情況時,我只看到一條消息被檢索(並檢查了4條消息仍在我的隊列中)。

看起來像「20」的計數沒有被尊重。我還檢查了我的服務總線隊列的設置,並將「最大傳送計數」設置爲「10」。這應該至少給我10個批次(而不是20個)。

我錯過了什麼?

+1

「最大傳遞計數」的一個說明設置爲「10」:這意味着一個消息在最後處理前最多被處理10次,即發送到死信子隊列。 –

+0

在queueClient場景中,您可以將OnMessageOptions.MaxConcurrentCalls設置爲5(例如),它將爲多條消息創建5個不同的線程。不知道這是否適用於邏輯應用程序。 – Aravind

回答

0

這不是很簡單,沒有更多的細節來回答。不過,我希望這可以幫助。

如果您使用的是WebJob,請確保關聯的AzureWebJobsStorage是在經典模式下創建的,而不是在遠程模式下創建的。這會讓你的WebJob在不到20秒內崩潰......不能讀取所有的隊列消息。

您的邏輯應用程序是否涉及ServiceBusTrigger?那麼看起來第一次調用標有正確觸發器的方法會失敗,並且不會讀取其他消息。

讓我知道我是否誤解了一些細節。