Я искал в интернете способ борьбы с параллелизмом в Laravel 4, например, когда вам нужно заблокировать всю таблицу или просто строку для обновления или создания, но нашел мало информации. На сайте Laravel они упомянули два метода:
lockForUpdate()
sharedLock()
Но когда я их использую, это не имеет никакого эффекта. Я использую это следующим образом:
Проверьте, существует ли что-то на столе
Model::queryFunction()->lockForUpdate()->first();
Если не существует, создайте новый элемент
$new_item = new Model;
$new_item->save();
Остальное, ничего не делай
Если два пользователя выполняют одно и то же действие одновременно, создаются два элемента, и это неправильно. Я надеюсь, что вы, ребята, можете ответить на мой вопрос.
Задача ещё не решена.
Других решений пока нет …