天蓝色队列如何重试失败的消息?

Posted

技术标签:

【中文标题】天蓝色队列如何重试失败的消息?【英文标题】:How azure queue retries failed message? 【发布时间】:2021-07-17 14:17:31 【问题描述】:

我有这个由队列存储触发的天蓝色函数。

function.json:

  "retry": 
    "strategy": "exponentialBackoff",
    "maxRetryCount": 5,
    "minimumInterval": "00:01:00",
    "maximumInterval": "14:00:00"
  

如果message A 失败,

message B 被处理,message A 被放在queue 的后面。

message A 被重试直到成功或到达maxRetryCountmessage B 以及其他消息等待直到函数通过message A 完成。

哪个是正确的?

在 Azure 文档中找不到答案。

【问题讨论】:

【参考方案1】:

答案是:message B 被处理,message A 被放在队列的后面。

因此,失败的消息被放在队列的后面。

混淆是因为 Azure 存储资源管理器显示按原始 InsertionTime 排序的消息,而实际执行顺序不同。

如您所见,message b 之前已失败,执行顺序将是 deb,而资源管理器窗口很容易混淆,仅显示按原始 InsertionTime 排序。

【讨论】:

以上是关于天蓝色队列如何重试失败的消息?的主要内容,如果未能解决你的问题,请参考以下文章

WebJobs 未重试失败的队列消息

rabbitmq~消息失败后重试达到 TTL放到死信队列(事务型消息补偿机制)

RocketMQ的消息重试

RocketMQ高可用设计之消息重试机制

MQ 重试队列注意事项

当 Api 返回响应时,如何以角度显示“登录失败。请重试”消息?