Обработка параллелизма с транзакцией (Spring Data JPA) по отношению к пользователю - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть 10 одновременных запросов для одного и того же пользователя, который отправляется на мой сервис upsert.Там, где у меня есть secnario, такой, что, если он уже есть, он обновится или создаст.

Здесь при поступлении запросов все обнаружат, что данных нет, и отправились на создание.Но я хочу, чтобы это можно было обработать в отношении конкретного пользователя.Я не хочу синхронизированный блок или около того, потому что он будет ограничивать все запросы.Я хочу что-то вроде блокировки для конкретного пользователя.

Предложите лучший подход.

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете синхронизировать ваш код, например, со значением user.id.В этом случае вы не блокируете все запросы, вы блокируете только запросы к одному и тому же id.

Посмотрите на эту библиотеку XSync (чтобы выполнить синхронизацию по значению объекта).

Надеюсь, это поможет.

...