Блокировка 10 строк для обработки и последующее удаление весной jpa - PullRequest
0 голосов
/ 12 июля 2020

У меня есть таблица mysql, которая добавляется двумя процессами, и два отдельных процесса читают из таблицы для обработки записей. После записи записи не обновляются.

Каждый из процессов чтения просыпается каждый час, чтобы проверить, есть ли какие-либо записи, и обработать их. После завершения обработки записи необходимо удалить, чтобы записи больше не обрабатывались.

Я использую spring JPA с mysql. На данный момент я думаю об использовании блокировки PESSIMISTIC_WRITE для запроса и блокировки 10 записей за раз, а затем их удаления. Могу ли я использовать Pageable для запроса записей при использовании блокировки PESSIMISTIC_WRITE? И, будет ли Pageable блокировать только одну страницу записей?

Мне хотелось подумать об этом подходе и пробовали ли его другие. Буду признателен за любые отзывы.

С уважением, A sh

1 Ответ

0 голосов
/ 27 июля 2020

В итоге я использовал LIMIT для получения 10 строк каждый раз. В моем SQL я также добавил «ДЛЯ ОБНОВЛЕНИЯ», чтобы заблокировать их. Затем я обработал строки и удалил 10 строк в той же транзакции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...