gpt4 book ai didi

azure - 使用消息队列绑定(bind)时如何处理 Azure Function 重新运行?

转载 作者:行者123 更新时间:2023-12-03 03:39:46 25 4
gpt4 key购买 nike

我有一个 v1 Azure 函数,该函数由写入 Azure 存储消息队列的消息触发。

Azure Function 需要对 SharePoint Online 执行多次更新。有时这些操作会失败。这会导致消息返回到队列并被重新处理。

当我开发该功能时,我没有考虑到它可能会部分完成然后重新启动。我做了一些研究,听起来我需要修改它以使其可重入。

我是否应该遵循一种设计模式来满足这一点,而不必添加大量检查来确定先前的执行是否已经执行了操作?或者,是否有任何 Azure 功能可以提供帮助(除了现有的消息重试和有害队列之外)

最佳答案

听起来您需要进行一些重新设计。我们的团队也遇到了类似的问题,并在几年前编写了一个自行开发的解决方案。但我们最终放弃了我们的解决方案并选择了 Azure Durable Functions .

不会说谎 - 这个框架有一定的复杂性,我花了一些时间才理解它。查看函数链模式。

我们的处理需要多个步骤,所有步骤都必须完成。我们跨越多个数据存储(更新 Cosmos Db、Azure SQL、Blob 存储等),因此不支持跨多个 PaaS 产品的分布式事务。耐用功能将允许您将流程分解为离散的步骤。如果某个步骤失败,编排器将根据重试策略重新运行该步骤。

简而言之,我们使用持久任务事件函数来尝试每一步。如果该步骤由于我们认为是暂时性错误而失败,我们会重试。如果这是不可恢复的错误,我们不会重试。

关于azure - 使用消息队列绑定(bind)时如何处理 Azure Function 重新运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71777027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com