gpt4 book ai didi

Azure 服务总线 - 锁定持续时间和重复,它们有何关系?

转载 作者:行者123 更新时间:2023-12-02 07:33:45 25 4
gpt4 key购买 nike

我有一个 Azure 函数,用于监视 Azure 服务总线队列,默认锁定持续时间为 30 秒。此 azure 函数根据来自队列的消息中的用户信息发送电子邮件通知。

我注意到发出了重复的电子邮件,因此检查了跟踪日志,发现同一用户已调用 azure 函数两次。日志条目如下:

2018-08-09T14:38:05.1249371Z - 执行“AzureFunction”(原因=“在“servicebusqueue”上检测到新 ServiceBus 消息。”,Id=4657012a-94ac -4b22-a628-2e94285aeeb7)

2018-08-09T14:38:33.3335833Z - 执行“AzureFunction”(原因=“在“servicebusqueue”上检测到新 ServiceBus 消息。”,Id=3ff8eea3-9b9b -43ae-a797-5acf01c2ae6c)

该消息仅添加到队列中一次,我正在尝试了解什么可以生成另一条消息。难道是因为锁定时间的原因?

最佳答案

是的,这可能是由于锁定持续时间造成的。只有在函数执行完成后,消息才会从队列中完成(接收并删除)。如果执行时间超过 30 秒,消息将被解锁,使其可供任何其他接收者使用。

在您的情况下,接收者将是相同的 Azure 函数,它会再次读取消息,这就是您看到消息重复处理的原因。

锁定持续时间的最大值为 5 分钟。如果 Azure Function 在收到消息时仅发送电子邮件通知,则可以将锁定持续时间增加到 5 分钟。电子邮件传输不应花费那么长时间,以便其他收件人无法收到该消息。

如果您除了发送通知之外还计划在 Azure Function 中添加一些内容,可以在 Azure Function 中设置锁的自动续订,请查看 here更多细节。这将使消息保持锁定状态,不留下重复的选项。

关于Azure 服务总线 - 锁定持续时间和重复,它们有何关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51772259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com