Logic App-从启用会话的服务总线队列中检索一批消息

时间:2019-02-09 06:57:48

标签: azure azure-logic-apps azure-servicebus-queues

因此,我想执行以下操作-每隔N秒从启用会话的队列(窥视锁定)中获取X条消息,然后将它们一起发送(在单个请求中)直到下一个处理点。到目前为止,我提出了以下一些选项-

  1. “从队列中获取消息”操作

似乎需要我事先对会话ID进行硬编码(?),这并不方便。

  1. "Batch receiver" logic app

它仍处于预览状态

  1. Custom trigger

似乎可以使用,但是需要额外的编码。

关于如何通过Logic Apps有效地实现它的任何建议?

2 个答案:

答案 0 :(得分:1)

解决此问题的一种方法是在逻辑应用程序上设置最大并发性。

转到服务总线接收操作的设置:

enter image description here

然后选择为10启用并发:

enter image description here

答案 1 :(得分:0)

您不需要会话来批量获取特定数量的消息。...只需阅读10条消息,然后进行所需的任何处理即可。

如果您还需要按顺序检索消息,那么可以,使用启用了会话的队列,其中所有呼叫者都使用相同的SessionId。

请记住,SessinId是任意的Application值,因此您可以根据需要使用与Queue name相同的值。我不认为这是任何障碍,而只是它的工作方式。

您可以在需要的任何时间间隔使用重复触发。

会话主要用于对消息进行分组。如果要在特定相关消息之间进行关联,则SessionID可以是任何特定的任意值,HighPriority / LowPriority或在运行时确定的值(例如guid)。现在我考虑一下,FIFO的副作用似乎更多地支持关联方案。