2015-08-25 1 views
1

При возврате DocumentClient AsReliable у него нет PartitionResolvers. Любой способ обойти это?IReliableReadWriteDocumentClient отсутствует PartitionResolver в документе DB

var documentClient = new DocumentClient(new Uri(endPointUrl), authorizationKey); 

var documentRetryStrategy = new DocumentDbRetryStrategy(RetryStrategy.DefaultExponential) { FastFirstRetry = true }; 
return documentClient.AsReliable(documentRetryStrategy); 

ответ

1

Вы можете получить доступ к базовому объекту DocumentClient для регистрации PartitionResolvers.

+0

Да, я вижу, что свойство UnderlyingClient доступно. Можно ли это использовать взаимозаменяемо и существует ли наилучшая практика использования IReliableReadWriteDocumentClient и когда использовать DocumentClient? – user1932923

2

IReliableReadWriteDocumentClient реализации, что вы получите от .AsReliable(..) просто обертка вокруг оригинального DocumentClient, который выполняет каждый метод исходного (базового) клиента в блоке повторных попыток, используя предоставленную стратегию повтора. Никакой магии. Встроенный модуль DocumentDbRetryStrategy предназначен для устранения большинства проблем переходной сети/обслуживания/дросселирования.

Отвечая на ваш первоначальный вопрос - вы можете установить PartitionResolvers на первоначальном клиенте, прежде чем обернуть его .AsReliable(..) или вы сможете получить доступ к коллекции позже через UnderlyingClient. UnderlyingClient имеет тот же экземпляр, который был передан методу расширения .AsReliable(..).

Что касается передовой практики вокруг использования DocumentClient против IReliableReadWriteDocumentClient: если вам нужно иметь более надежную связь между клиентом и сервером, который автоматически повторит на переходных сбоях, описанных выше, - то вы должны рассмотреть возможность использования .AsReliable(..). Если ваш сценарий не требует, чтобы все документы сохранялись в хранилище (например, в случае регистрации/трассировки), и вы все равно будете «проглатывать» все исключения - тогда нет ничего плохого в использовании DocumentClient, чтобы сократить время, затрачиваемое в дополнительных попытках.

Смежные вопросы