IReliableReadWriteDocumentClient
реализации, что вы получите от .AsReliable(..)
просто обертка вокруг оригинального DocumentClient
, который выполняет каждый метод исходного (базового) клиента в блоке повторных попыток, используя предоставленную стратегию повтора. Никакой магии. Встроенный модуль DocumentDbRetryStrategy
предназначен для устранения большинства проблем переходной сети/обслуживания/дросселирования.
Отвечая на ваш первоначальный вопрос - вы можете установить PartitionResolvers
на первоначальном клиенте, прежде чем обернуть его .AsReliable(..)
или вы сможете получить доступ к коллекции позже через UnderlyingClient
. UnderlyingClient
имеет тот же экземпляр, который был передан методу расширения .AsReliable(..)
.
Что касается передовой практики вокруг использования DocumentClient
против IReliableReadWriteDocumentClient
: если вам нужно иметь более надежную связь между клиентом и сервером, который автоматически повторит на переходных сбоях, описанных выше, - то вы должны рассмотреть возможность использования .AsReliable(..)
. Если ваш сценарий не требует, чтобы все документы сохранялись в хранилище (например, в случае регистрации/трассировки), и вы все равно будете «проглатывать» все исключения - тогда нет ничего плохого в использовании DocumentClient
, чтобы сократить время, затрачиваемое в дополнительных попытках.
Да, я вижу, что свойство UnderlyingClient доступно. Можно ли это использовать взаимозаменяемо и существует ли наилучшая практика использования IReliableReadWriteDocumentClient и когда использовать DocumentClient? – user1932923