Azure 逻辑应用程序中服务总线连接器的消息处理策略
Messages processing policy for Service Bus connector in Azure Logic App
我有 Azure Logicapp,它使用 当一条或多条消息到达主题时(窥视锁定) 连接器处理来自服务总线主题的消息。
我已经用相同的 session-id 向服务总线发送了 40 条消息
正如我们从 documentation 中了解到的那样,此连接器每个 运行 可以处理 20 条消息。 但是 我们在这里看到的。
第一个运行
我有另一个时区 (UTC+3),所以时间有变化
第二个运行
第三个运行
我们有三个 1/20/19
而不是两个 运行 20/20
为什么会这样?我在文档中找不到解释?
逻辑应用不会等待 20 条消息累积,因为它不知道是否还会有更多消息。所以它会立即触发第一条消息。此时,没有其他消息可供处理。
根据您屏幕截图中的时间戳,情况如下:
- 设置逻辑应用、配置触发器等
- 您开始发送消息
- 逻辑应用接收你发送的第一条消息
- 您已发送完 40 条消息
- 逻辑应用完成处理第一条消息
- 逻辑应用选取接下来的 20 条消息
- 逻辑应用选取最后 19 条消息。
Logic app Service Bus 不保证批处理实现此用途batch receiver
看起来逻辑应用程序将被第一条消息触发,并尝试预取接下来的 20 个(默认大小)项目并为下一个项目执行此操作。
Some triggers, such as the When one or more messages arrive in a queue (auto-complete) trigger, can return one or more messages. When these triggers fire, they return between one and the number of messages that's specified by the trigger's Maximum message count property.
https://docs.microsoft.com/en-us/azure/connectors/connectors-create-api-servicebus
我想告诉您 20 是连接器中的默认计数,您可以增加计数(最大消息计数)。它可能无法完全解决您面临的问题,但至少可以让您减少执行次数。
要解决第一个消息问题,请考虑使用批处理接收器。
我有 Azure Logicapp,它使用 当一条或多条消息到达主题时(窥视锁定) 连接器处理来自服务总线主题的消息。
我已经用相同的 session-id 向服务总线发送了 40 条消息
正如我们从 documentation 中了解到的那样,此连接器每个 运行 可以处理 20 条消息。 但是 我们在这里看到的。
第一个运行
我有另一个时区 (UTC+3),所以时间有变化
第二个运行
第三个运行
我们有三个 1/20/19
20/20
为什么会这样?我在文档中找不到解释?
逻辑应用不会等待 20 条消息累积,因为它不知道是否还会有更多消息。所以它会立即触发第一条消息。此时,没有其他消息可供处理。
根据您屏幕截图中的时间戳,情况如下:
- 设置逻辑应用、配置触发器等
- 您开始发送消息
- 逻辑应用接收你发送的第一条消息
- 您已发送完 40 条消息
- 逻辑应用完成处理第一条消息
- 逻辑应用选取接下来的 20 条消息
- 逻辑应用选取最后 19 条消息。
Logic app Service Bus 不保证批处理实现此用途batch receiver
看起来逻辑应用程序将被第一条消息触发,并尝试预取接下来的 20 个(默认大小)项目并为下一个项目执行此操作。
Some triggers, such as the When one or more messages arrive in a queue (auto-complete) trigger, can return one or more messages. When these triggers fire, they return between one and the number of messages that's specified by the trigger's Maximum message count property.
https://docs.microsoft.com/en-us/azure/connectors/connectors-create-api-servicebus
我想告诉您 20 是连接器中的默认计数,您可以增加计数(最大消息计数)。它可能无法完全解决您面临的问题,但至少可以让您减少执行次数。
要解决第一个消息问题,请考虑使用批处理接收器。