Задать вопрос
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. При таком обращении условие описанное выше не срабатывает и в базу пролезает две записи вместо одной.

Может быть кто-то сталкивался с похожей проблемой и сможет подсказать методы её лечения на стороне сервера?
  • Вопрос задан
  • 183 просмотра
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Блокировка.
Полностью блокируем таблицу. Читаем последнюю дату. Если нужно, то делаем запись. Разблокируем таблицу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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