2016-07-15 16 views
0

빈 BLOB 컨테이너에서 파일을 다운로드하려고했는데 예상대로 404 개가 있습니다. 질문은 피들러에서이 파일을 1 회 만 호출하는 대신 3 (RetryPolicy에 지정된대로) 대신 1 초 이내에 호출이 완료됨을 알 수 있으므로 다시 시도하기 전에 10 초 동안 기다리지 않았습니다. .. BlobClient가 실제로 재 시도를했는지 어떻게 알 수 있습니까?Azure Blob RetryPolicy를 신뢰할 수 있습니까? 피들러에서 이러한 재시도 요청을 찾을 수없는 이유

var blobClient = this.storageAccount.CreateCloudBlobClient(); blobClient.DefaultRequestOptions.RetryPolicy = new LinearRetry(TimeSpan.FromSeconds(10), 3); var anchorString = await cloudBlobContainer.GetBlockBlobReference(ARGO_ANCHOR_VERSION_FILE).DownloadTextAsync();

답변

0

대신이이 기본으로 예상되는 동작

(필자는 RetryPolicy에 지정된대로) 3의 내가 피들러에서이 파일 만 1 전화를 볼 수 있습니다 질문, 재 시도 정책 (선형, 지수 등)은 모든 작업을 재 시도하지 않습니다. 재시도 정책은 transient 오류을 처리합니다. 404 (Not Found) 오류가 있으며 일시적인 오류가 아니므로 재 시도 가능한 작업이 아니라고 언급했습니다. 일반적으로 상태 코드 500+가있는 오류는 기본적으로 다시 시도 할 수 있습니다.

그러나 사용자 지정 다시 시도 정책을 만들고 오류 코드를 다시 시도 할 수 있습니다. 재시도 정책에 대해 오랫동안 블로그 게시물을 작성했으며 사용자 지정 재시도 정책을 작성하기위한 몇 가지 코드를 작성했습니다. 404 오류를 일시적인 오류로 취급하는 사용자 정의 재시도 정책을 작성한 다음 저장 영역 클라이언트 라이브러리가 조작을 재 시도해야합니다. 이 게시물은 여기에서 읽을 수 있습니다 : http://gauravmantri.com/2012/12/30/storage-client-library-2-0-implementing-retry-policies/.

+1

설명해 주셔서 감사합니다! – Carol

+0

이 코드는 여기에서보실 수 있습니다 : https://github.com/Azure/azure-storage-net/blob/master/Lib/Common/ StorageException.IsRetryable = true가이 예외의 경우에는 혼란 스럽습니다. StorageException.cs. 이'IsRetryable'에 기초한 것은'ArgumentException'의 경우에만 false로 설정됩니다 (예 : 유효하지 않은 Blob 컨테이너 이름을 제공). HTH. –