Я вставляю большое количество документов в базу данных Mon go, используя операцию bulkWrite (Java Driver 3.12). Я также реализовал механизм повторных попыток в случае разрыва соединения.
Но есть проблема в последующих попытках: поскольку некоторые документы были вставлены в предыдущую попытку, последующая попытка приводит к Duplicate Key error
@Autorwire
private ReactiveMongoOperations operations
operations
.execute(Document.class, collection ->
collection.bulkWrite(insertOneRequests, new BulkWriteOptions().ordered(false)
.bypassDocumentValidation(true)))
.retryWhen(Retry.any().fixedBackoff(Duration.ofMillis(backoffDuration)).retryMax(retryCount)
.doOnRetry(retryContext -> log.info("Retry"));
Есть ли способ игнорировать «Duplicate Key Error» при последующих попытках?
Как это обычно обрабатывается, учитывая, что это не редкий сценарий? Предполагая, что я пытаюсь избежать использования операций «Upsert» (Заменить) в этом случае.