Весеннее загрузочное приложение с MongoDB CrudRepository.
У меня есть несколько потоков, обновляющих один и тот же документ параллельно. Каждый поток будет загружать документ по идентификатору, вносить изменения
и попытайтесь сохранить его.
Чтобы преодолеть поведение «последних побед», которое может переопределять изменения, сделанные первым потоком, я реализовал простой механизм управления версиями, где поток может сохранять свои изменения только в том случае, если он пытается сохранить последнюю версию, в противном случае выдается исключение.
Это устраняет несоответствия данных, которые могут быть вызваны множественными записями, но я теряю работу. Нет механизма повторных попыток для потока, который пытался сохранить документ с устаревшей версией.
Есть ли общие решения этой проблемы? Я не уверен, какой подход мне нужен для решения этой проблемы.