在使用 Azure Service Bus Queue 函数时,我们知道每当出现异常时,azure 函数都会执行默认的重试策略(最大计数 = 10),我们想做的是让我们的消息带有一个名为retryCount的属性,所以当异常产生时,我们会增加retryCount += 1,并将当前异常添加到我们的消息中,然后当函数执行重试时,我们可以知道这是它与 x 记录一起出现的第 x 次例外。我们知道Message对象有一个名为deliveryCount的只读属性,但是,我们无法绑定我们的附加信息或找出最后一次传递失败的原因来自消息对象。
然而,在我们尝试实现我们的想法之后,我们发现每当函数执行重试时,它总是从队列中重新加载初始消息,而不是我们更新的消息。有没有办法让它重试更新的消息而无需强制将更新的消息重新发送回当前队列?
另外,我们如何自定义当前的重试逻辑,例如,将最大重试次数从 10 减少到 1,并使用 Polly 处理函数内部的一些场景?