Logic App - 从启用会话的Service Bus Queue中检索一批消息

问题描述 投票:1回答:2

所以我想执行以下操作 - 每N秒从启用会话的队列(peek-lock)获取X消息,然后将它们一起发送(在单个请求中)直到下一个处理点。以下是我到目前为止的选择 -

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

好像它需要我事先对会话ID进行硬编码(?),这不是那么方便。

  1. "Batch receiver" logic app

它还在预览中

  1. Custom trigger

似乎它会起作用,但需要额外的编码。

有关如何通过Logic Apps有效实现这一目标的任何建议吗?

azure azure-logic-apps azure-servicebus-queues
2个回答
1
投票

您不需要Sessions专门用于批量检索特定数量的消息....只需阅读10条消息然后执行您需要的任何处理。

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

请记住,SessinId是一个任意的Application值,因此如果需要,您可以使用与Queue名称相同的值。我不认为这是任何障碍,而是它的运作方式。

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

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


1
投票

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

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

enter image description here

然后选择启用10的并发:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.