코스모스 db (documentdb)에 대한 재시도/백 오프 전략을 어떻게 구현하는 것이 가장 좋은지 알고 싶습니다. 내가 그렇게처럼 connectionpolicy에서 변경할 수있는 SDK에 내장 된 몇 가지 기본 재시도 메커니즘이 있음을 이해 :Cosmos DB에서 정책 다시 시도
RetryOptions = new RetryOptions() { MaxRetryAttemptsOnThrottledRequests = 3, MaxRetryWaitTimeInSeconds = 60 }
그러나, 나는 확실하지 않다 어떻게 예외 관리 작업을 수행하는 방법에 영향을 것을.
은 현재 내가 뭐하는 거지 다음GetAsync<T>(Uri, Id) {
try {
ResourceResponse<Document> response = await client.ReadDocumentAsync(URiFactory.CreateDocumentUri(uri), new RequestOptions { PartitionKey = new PartitonKey(convert.ToInt64(id)) }).ConfigureAwait(false);
}
catch(DocumentClientException ex) {
if(ex.StatusCode == (HttpStatusCode)TooManyRequests) {
await Task.Run(async() =>
{
await Task.Delay(ex.RetryAfter);
return await GetAsync<T>(Uri, Id).ConfigureAwait(false);
}
}
}
}
나는이 재 시도를 어떻게해야합니까? 예외를 잡으면 기본 재시도가 중지됩니까? 또한 기본 재시도 시도는 무엇입니까? 즉 429입니까? 그렇다면 수동으로 오류 코드 449를 처리해야합니까?
도움을 주시면 대단히 감사하겠습니다.