2016-12-02 181 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?那么看起来第一次调用标有正确触发器的方法会失败,并且不会读取其他消息。

让我知道我是否误解了一些细节。