Azure 服务总线将消息添加到队列的速度过快
Azure Service Bus adding message to the queue too quickly
我遇到了一个问题,我正在触发一个由 Azure 函数服务总线触发器处理的事件。
运行s 可以 运行 任何地方长达一个小时的触发器,这很好,但我发现 5 分钟后消息被重新添加到队列中,所以它越来越反复处理
我可以通过更改 MaxDeliveryCount 确保此特定主题仅读取一次消息来解决这个问题,但理想情况下我希望锁的到期时间比函数更长(最多 1 小时)。
根据 Microsoft 文档,它应该已经这样做了,但是当它重新排队消息时我仍然遇到问题。
The Functions runtime receives a message in PeekLock mode. It calls Complete on the message if the function finishes successfully, or calls Abandon if the function fails. If the function runs longer than the PeekLock timeout, the lock is automatically renewed as long as the function is running.
有什么想法吗?
Azure 服务总线一次最多只能锁定一条消息 5 分钟。但它也可以更新锁定,从技术上讲,只要没有发出锁定请求失败,就可以根据需要锁定消息。除此之外,execution time 函数也有限制。例如,在消耗计划中,函数不会 运行 超过最长 10 分钟。对于任何比这更长的处理时间,应该考虑替代方案,包括但不限于以下内容:
- 高级函数
- 应用服务
- 容器(Container Apps Service 看起来很有前途)
我遇到了一个问题,我正在触发一个由 Azure 函数服务总线触发器处理的事件。
运行s 可以 运行 任何地方长达一个小时的触发器,这很好,但我发现 5 分钟后消息被重新添加到队列中,所以它越来越反复处理
我可以通过更改 MaxDeliveryCount 确保此特定主题仅读取一次消息来解决这个问题,但理想情况下我希望锁的到期时间比函数更长(最多 1 小时)。
根据 Microsoft 文档,它应该已经这样做了,但是当它重新排队消息时我仍然遇到问题。
The Functions runtime receives a message in PeekLock mode. It calls Complete on the message if the function finishes successfully, or calls Abandon if the function fails. If the function runs longer than the PeekLock timeout, the lock is automatically renewed as long as the function is running.
有什么想法吗?
Azure 服务总线一次最多只能锁定一条消息 5 分钟。但它也可以更新锁定,从技术上讲,只要没有发出锁定请求失败,就可以根据需要锁定消息。除此之外,execution time 函数也有限制。例如,在消耗计划中,函数不会 运行 超过最长 10 分钟。对于任何比这更长的处理时间,应该考虑替代方案,包括但不限于以下内容:
- 高级函数
- 应用服务
- 容器(Container Apps Service 看起来很有前途)