У меня есть следующий сценарий в приложении Spring Boot:
Мой сервисный метод читает набор элементов из БД, где item.status = 'open'.
Затем я изменю статус одного из этих элементов на «закрыто» и выполню некоторые действия.
Дело в том, что если несколько запросов поступают на сервер, запускаются слишком близко (в течение миллисекунд) параллельные выполнения, и эти параллельные выполнения имеют доступ к старому состоянию (где элемент все еще «открыт», когда он фактически был обработан). ) обработка обработанных элементов, что не может произойти.
Я пытался использовать режим изоляции транзакции для сериализации, но это не решает проблему.
Любые предложения о том, что я делаю неправильно или что я могу попробовать?
Спасибо