Как установить политику повтора в Cosmos DB с помощью java?

Как я могу установить политику повторных попыток, при которой запись в cosmosDB отправляется с помощью java.

Я хочу повторить попытку отправки записи, если не удалось отправить запись в первый раз. Я хочу повторить попытку нажатия 5 раз с интервалом в 2 секунды.

как я могу внести такие изменения в java, я читал о ConnectionPolicy в java, но не могу понять, как он может полностью удовлетворить мои требования.

справочная ссылка: https://docs.microsoft.com/bs-latn-ba/azure/cosmos-db/performance-tips-java.

Код:

retryOptions = new RetryOptions();
retryOptions.setMaxRetryAttemptsOnThrottledRequests(5);
retryOptions.setMaxRetryWaitTimeInSeconds(10);
connectionPolicy = new ConnectionPolicy();
connectionPolicy.setRetryOptions(retryOptions);
documentClient = new DocumentClient(END_POINT,
                MASTER_KEY, connectionPolicy,
                ConsistencyLevel.Session);

person Mohit Singh    schedule 19.03.2020    source источник


Ответы (1)


Вы можете использовать _ 1_ и создайте экземпляр _ 2_ с _ 3_ как _4dava-s и https://support.html/http: //www.html.com/ /com.microsoft.azure.documentdb.retryoptions.setmaxretrywaittimeinseconds?view=azure-java-stable#com_microsoft_azure_documentdb_RetryOptions_setMaxRetryWaitTimeInSeconds_int_ "rel =" nofollow 5_points as 5 x

person Gaurav Mantri    schedule 19.03.2020
comment
Можете ли вы, пожалуйста, просмотреть приведенный выше код, о котором идет речь, еще один тест setMaxRetryWaitTimeInSeconds, в котором мы устанавливаем 10, как он узнает, что он должен подождать 2 секунды, а затем повторить попытку? - person Mohit Singh; 19.03.2020
comment
Мне не удалось найти исходный код для RetryOptions, но я нашел код для ResourceThrottleRetryPolicy здесь: github.com/Azure/azure-cosmosdb-java/blob/. Это должно дать вам представление о том, как повторная попытка реализована в SDK. - person Gaurav Mantri; 19.03.2020
comment
хорошо, не совсем понятно, что они делают, но если я установлю setMaxRetryWaitTimeInSeconds как 10, повторная попытка будет происходить через каждые 2 секунды? если после 5 попыток он не может нажать запись, действительно ли он вернет код ошибки? documentClient.createDocument (collectionLink, document, null, false), как в этом, я создаю Документ, он пытается нажать запись и выполнить все повторные попытки, вернет ли он какой-либо код, чтобы мы могли сравнить, что запись отправлена ​​успешно? что-то вроде кода состояния 200 - person Mohit Singh; 19.03.2020
comment
Таким образом, не все коды ошибок можно повторить. В этом случае, только когда вы получите ошибку дросселирования (код состояния 429), операция будет повторена. Также следует отметить наличие заголовка в ответе, который сообщает, через сколько времени следует повторить операцию (x-ms-retry-after-ms). - person Gaurav Mantri; 19.03.2020
comment
Кроме того, вы можете загрузить исходный код SDK отсюда: github.com/Azure/ azure-documentdb-java / Release (1.8.0) и понять, как именно это реализовано. - person Gaurav Mantri; 19.03.2020