azure - Azure 函数队列触发器:如何设置出队消息的时间延迟
问题描述
我有一个 Azure 函数,它监听 azure queue,例如,有问题。它再次将消息重新添加到队列中。但是经过 5 次消息将被移动到毒队列。
我想延迟将消息重新添加到队列中。例如,重试 1 小时。因为我的 Azure Function 使用外部资源,目前可能不可用。我根本不想在 10 秒内重试 5 次,我想在 1 小时后重试。当然,我编写了自己的实现,但可能这个特性已经存在。
解决方案
@4c74356b41 指出了正确的方法。队列的host.json设置就是您要查找的内容。
visibilityTimeout 是消息处理失败时重试之间的时间间隔 maxDequeueCount 是在将消息移动到有害队列之前尝试处理消息的次数。
{
"version": "2.0",
"extensions": {
"queues": {
"visibilityTimeout" : "01:00:00",
"maxDequeueCount": 2
}
}
}
如果你的函数是 v1,同样
{
"queues": {
"visibilityTimeout" : "01:00:00",
"maxDequeueCount": 2
}
}
更新
由于问题主要是visibilityTimeout
根据具体情况进行更改,因此设置相应的延迟CloudQueue.AddMessageAsync
是唯一的方法。实际上,visibilityTimeout
在功能应用级别(所有队列)上做的事情完全相同,所以在这种情况下我们不需要坚持。
推荐阅读
- java - 使用 Eureka Discovery Server 进行基于 WAR 的微服务注册
- bash - 使用 jq 从 json 获取键值
- javascript - JS — FLIP 技术和 requestAnimationFrame,重构为不嵌套
- c# - 在 c# asp.net core web api 中创建 jwt 令牌
- nopcommerce - 如何在 NopCommerce 中添加(在 App Store 上下载)按钮?
- javascript - WooCommerce 单品页面中基于尺寸的价格计算
- php - 如何从请求的数组 PHP 中获取字符串
- amp-html - 我们如何在 AMP 网站中实现 MathJax
- c# - VB.Net 等价于 C# nameof 用法
- php - 如何在 PHP 中访问多维数组?