Alexey_gr
@Alexey_gr

Как организовать последовательное выполнение одинаковых запросов для пользователя?

У меня в проекте используется spring и jdbc для чтения/записи в sql базу.
Есть куча пользователей которые обновляют свою информацию. Надо как-то блокировать повторные запросы в базу, т.е. есть метод writeToDb(...) внутри несколько вызовов storedProcedure, надо что бы для текущего пользователя, одновременные вызовы этого метода работали последовательно. Если он вызвал эндпоинт на сервере два или более раза подряд, то сначала выполнится первый запрос, после его завершения второй и т.д.
В общем как проще организовать транзакции на уровне пользователя для конкретного метода?
  • Вопрос задан
  • 2339 просмотров
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Вариантов несколько: первый - блокировками типа мьютекса, второй очередями с флагом.
Но, вообще-то это должна сама база данных разруливать своими блокировками и транзакицями!
запустили транзакцию, делаем работу, закоммитили. если данные внутри транзакции стали невалидные, то база откатит транзакцию, а нам вернет ошибку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы