Newto
@Newto

Одновременные запросы на запись, как отфильтровать?

Приветствую.

Есть API на PHP, к нему обращается андроид приложение. В API есть два класса(class1, class2), оба из которых при получении POST запроса обращаются к третьему(class3), который осуществляет запись в MySQL вида account_id, record_time, где account_id это id обратившегося пользователя, а record_time это время записи.

В class3 стоит условие: если последняя запись от account_id делалась менее чем час назад, то запись не производить. Условие работает корректно если запросы к class1 и class2 происходят не одновременно. Но приложение иногда присылает два запроса(от одного и того же account_id) одновременно, т.е. одновременно обращается к class1 и class2. При таком обращении условие описанное выше не срабатывает и в базу пролезает две записи вместо одной.

Может быть кто-то сталкивался с похожей проблемой и сможет подсказать методы её лечения на стороне сервера?
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Блокировка.
Полностью блокируем таблицу. Читаем последнюю дату. Если нужно, то делаем запись. Разблокируем таблицу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы