azure - 我可以在 azure 函数中使用重试策略吗?

标签 azure azure-functions azure-eventhub

我使用事件中心临时存储数据,这些数据将首先保存到 azure 表存储,然后索引到 elasticsearch。 我想我应该在 azure 函数中执行存储保存调用,并使用 NEST 对 Elasticsearch 索引执行相同的操作。 处理数据很重要,因此我想使用 Polly 作为重试策略,以防 Elasticsearch 服务器出现故障。但是,重试策略是否可能会使 azure 函数变得昂贵? Azure Functions 是正确的选择吗?

最佳答案

是的,您可以在 Azure Functions 中使用 Polly 进行重试。一些进一步的考虑:

  • 是的,您需要支付重试时间的费用。但考虑到您的 Elastic Search 已“基本启动”,偶尔重试的额外费用应该不会太高。

  • 如果您也想重新尝试保存到表存储,则必须自己编写用 Polly 修饰的调用,而不是其他首选的输出绑定(bind)

  • 请务必检查写入顺序对您是否重要,以及是否应在开始写入 Elastic 之前重试表存储写入以完成,反之亦然。否则,您可以与 async 并行执行它们,然后使用 Task.WaitAll

  • 函数的最长执行时间默认为 5 分钟,您可以将其配置为最长 10 分钟。如果您需要处理比这更长的中断时间,您可能需要一个 B 计划。开始将失败时间超过 4(或 9)分钟的事件复制到专用队列,然后从那里重试。或者在此类停机时间内禁用该功能。

关于azure - 我可以在 azure 函数中使用重试策略吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47520255/

相关文章:

Azure RBAC - 模块化和自定义角色继承

Azure 防火墙和 VPN/ExpressRoute UDR

json - ConvertFrom-JSON 到对象

azure - EventHub 的 Azure 部署期间出现 429 错误

同一事件中心分区内的 Azure Function App 调用

azure - 从 Azure 资源管理器模板中的资源组获取标签

c# - 保护 Azure 功能的方法有哪些

azure - 无法创建任务中心: DurableTask. AzureStorage.Storage.DurableTaskStorageException

azure - Azure WebJob 内的 EventHub 注册处理器无法正常工作

c# - 如何从事件函数获取 ILogger?