Как в ларавель 5.5 заставить mysql обрабатывать запросы по очереди?

19 января, 12:37 Работа 3813 3

На сайте могут быть 2-3 запроса в секунду от одного пользователя. В базе есть баланс, когда он нажимает одновременно с милисекундой на кнопку заплатить, списывается только 1 раз, так-как сайт или база не успевают обработать этот запрос, он идет одновременно.
 

3 комментария
Сортировка:
Добавить комментарий
Michail Denisenko
Michail Denisenko 2020, 19 января, 18:32
0
Открываете транзакцию, вытаскиваете юзера с локом ->lockForUpdate(), проводите свои манипуляции/проверки, сейвите, комиттите транзакцию.
Vova P
Vova P 2020, 19 января, 17:41
0
И решается это ... барабанная дробь ... очередями! Rabbitmq, Kafka и другими вариантами. Кстати, Хранить баланс прямо в пользователе - плохая идея.
Viktor Kravchenko
Viktor Kravchenko 2020, 19 января, 16:53
0
Если пользователь нажимает "заплатить" три раза в секунду - скорее всего, у него просто проблема с мышкой

IT Новости

Смотреть все