У меня есть база данных MySQL и онлайн-сайт (с PHP на бэкэнде).
Если пользователь A отправляет деньги B, но B одновременно отправляет деньги A, возникает условие гонки.
Есть несколько других более сложных условий гонки, чем просто отправка денег (например, обмен нескольких предметов одновременно на несколько других предметов — каждый предмет соответствует строке в таблице MySQL).
В PHP есть ли глобальная блокировка, на которую я могу ссылаться по идентификатору пользователя?
Псевдокод того, что я хочу:
lock_acquire($user_A->id);
lock_acquire($user_B->id);
//do some sensitive stuff between user A and user B
lock_release($user_A->id);
lock_release($user_B->id);
Есть ли такая функция в PHP?
Заранее спасибо!
Задача ещё не решена.
Других решений пока нет …