Как обрабатывать параллельные запросы в laravel - PullRequest
0 голосов
/ 08 мая 2020

Я разрабатываю API для игры-викторины, в которой есть 3 таблицы:

1) Игры: здесь хранятся различные игры

2) Player: Игроки, участвующие в различных играх (game_id foreign_key) с номером хода

3) ответ: Здесь ответ пользователя будет сохранен

Теперь, когда игра начинается, игроку с номером хода будет отображаться вопрос с номером хода 1, и игрок отправит ответ. После этого следующий вопрос будет показан игроку с turn_number 2, и игрок отправит ответ.

Теперь у нас есть одна линия жизни, которая, если следующий игрок не отправил свой ответ, предыдущий игрок может отменить их выбор. Таким образом, если игрок со 2 ходом не представил свой ответ, то игрок с ходом 1 может отменить свой выбор и изменить свой ответ.

Но моя проблема в том, когда игрок с 1 ходом нажимает «Отменить», а игрок со 2 ходом одновременно подайте ответ. Из-за этого мои данные становятся несовместимыми.

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

Как я могу справиться с этой ситуацией? Пожалуйста, помогите.

Примечание: при отмене / отправке ответа произойдет изменение в нескольких таблицах, а не в одной.

...