Azure Function队列触发器:如何设置出队消息的时间延迟

时间:2019-01-27 17:55:11

标签: azure azure-storage azure-functions azure-queues

我有一个Azure函数,它监听天蓝色的队列,例如,发生了某些错误。它将消息重新添加到队列中。但是5次之后,消息将被移至中毒队列。

我想重新添加一条消息以便延迟。例如,重试1小时。因为我的Azure功能可以使用外部资源,所以暂时无法使用。我根本不想在10秒内重试5次,我想在1小时后重试。当然,我编写了自己的实现,但是此功能可能已经存在。

1 个答案:

答案 0 :(得分:0)

@ 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的功能完全相同,但是在功能应用程序级别(所有队列)上,因此在这种情况下我们不需要坚持这样做。