我正在使用 Azure 队列来保存失败的消息。
每条消息都必须由 Azure Function 重试 10 次才能被丢弃。
如何确定每次重试之间的延迟? (如果我使用标准行为,消息会在不到一秒的时间内重试 10 次)
最佳答案
您的问题并不能 100% 清楚地表明您是否在 Azure 存储或 Azure 服务总线中使用队列。如果您使用的是 Azure 存储队列:
您可以利用 visibilityTimeout
来配置重试之间的时间。在内部,这会将消息锁定到当前消费者指定的时间。如果出现错误,消息将不会被删除,并且在超时后,Azure 队列会再次向任何可用的使用者提供该消息。
{
"version": "2.0",
"extensions": {
"queues": {
"maxPollingInterval": "00:00:02",
"visibilityTimeout" : "00:00:30",
"batchSize": 16,
"maxDequeueCount": 5,
"newBatchThreshold": 8,
"messageEncoding": "base64"
}
}
}
visibilityTimeout The time interval between retries when processing of a message fails.
另请参阅此答案以了解更多详细信息:Azure function visibilityTimeout
关于Azure队列: Delay between retries (Azure Function),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75143357/