问题描述
我在Cosmos DB
中有一些存储过程,希望将它们转换为.NET事务。最近,我看到这篇帖子https://devblogs.microsoft.com/cosmosdb/introducing-transactionalbatch-in-the-net-sdk/涉及了交易支持。我也能够对其进行测试,并且看起来工作正常。
我知道.NET已在其许多受支持的程序包中添加了内置重试逻辑。 TransactionalBatch
是否有任何内置的重试策略?重试任何失败的建议方法是什么?上面的帖子正在查看IsSuccessstatusCode
。状态失败后是否应该重试?
解决方法
TransactionalBatch是否有任何内置的重试策略?
目前,它不支持内置的重试策略。
重试任何失败的建议方法是什么?
TransactionalBatch描述了一组需要成功或失败的点操作。如果任何操作失败,则会回滚整个事务。
因为失败的状态码将是424和409,所以我们不能使用RetryOptions.MaxRetryAttemptsOnThrottledRequests
。
因此,您可以使用for (int i = 0; i < MaxRetries; i++){}
来执行重试逻辑。