【问题标题】:Cosmos DB: How to retry failures with TransactionalBatchCosmos DB:如何使用 TransactionalBatch 重试失败
【发布时间】:2020-08-23 19:57:11
【问题描述】:

我在Cosmos DB 中有一些存储过程,我想将它们转换为.NET 事务。最近,我看到了这篇关于事务支持的帖子https://devblogs.microsoft.com/cosmosdb/introducing-transactionalbatch-in-the-net-sdk/。我也能够对其进行测试,它似乎工作正常。

我知道 .NET 已将内置重试逻辑添加到其许多受支持的包中。 TransactionalBatch 是否有任何内置的重试策略?重试任何失败的推荐方法是什么?上面的帖子正在查看IsSuccessStatusCode。一旦状态为失败,我们是否应该重试?

【问题讨论】:

    标签: azure transactions azure-cosmosdb transient-failure


    【解决方案1】:

    TransactionalBatch 是否有任何内置的重试策略?

    目前,它不支持内置重试策略。

    重试失败的推荐方法是什么?

    TransactionalBatch 描述了一组需要成功或失败的点操作。如果任何操作失败,则回滚整个事务

    因为失败的状态码会是424和409,所以我们不能使用RetryOptions.MaxRetryAttemptsOnThrottledRequests

    所以,您可以使用for (int i = 0; i < MaxRetries; i++){} 来执行重试逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-19
      • 2019-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      相关资源
      最近更新 更多