Azure 存储队列 - Cosmos DB 输出 - 错误处理

Azure storage queue - Cosmos DB output - error handling

我们有一个 Azure js 函数,它执行一些操作然后输出以触发存储队列。存储队列输出插入 Cosmos DB。我们的 Cosmos DB 有一定数量的可用 RU,在流量高峰期间将超过 RU。在这种情况下,似乎数据库插入将失败并返回 429,需要重试。由于插入是作为存储队列的 "output" 处理的,我们不知道如何处理错误,因为我们的代码永远不会直接看到错误。

我已经简要阅读了 "poison queues",但我认为我没有完全理解。如果上述操作失败(尝试 5 次后?),该项目会自动进入新创建的毒药队列吗?除了正常操作之外,更新我们的存储队列功能以尝试处理有害队列中的项目是否有意义?

队列存储示例代码:

module.exports = function(context, myQueueItem) {
    context.bindings.outputDocument = myQueueItem;
    context.done(); //insert happens here?
};

是的,默认情况下,重试 5 次后,邮件将被放入病毒队列。您可以创建另一个函数来收听该队列(使用相同的函数实际上没有意义)或在非高峰时段使用某种预定触发器 + 脚本处理这些消息。