我正在使用推荐的SDK-Microsoft.Azure.Cosmos
我想限制Cosmos创建文档所需的时间.所以,例如,我希望所有的超时,重试之间的延迟和重试在最坏的情况下在5秒内完成.这是所有重试超时的时间.
我可以使用Service Bus SDK来实现这一点,并且当我调用其他API时,我可以将东西包装在Polly中并轻松地控制这些参数.
我想这样做的原因是因为我的服务的调用者将在设定的时间后超时.届时,它将取消请求.我想配置我的应用程序,以便在大多数情况下,它在请求被取消之前完成所有重试.显然,我可以传播一个取消令牌,但这并不像在给定窗口内完成所有工作那样整洁.
Cosmos SDK中的大多数重试选项都围绕着特定的节流情况.我还意识到,一些请求将通过HTTP发送,而另一些将以直接模式通过TCP发送.
我在一个.NET 8项目的Program.cs中用来创建Cosmos客户端的代码示例:
CosmosClient cosmosClient = new(
connectionString: "<connection-string-goes-here>",
new CosmosClientOptions
{
ApplicationPreferredRegions = new List<string> { Regions.SoutheastAsia }
// I would expect there to be options here for controlling timeouts and retries
}
);