Ответы пользователя по тегу PHP
  • Как решить проблему с конкуренцией запросов на чтение в PHP?

    MrLoki
    @MrLoki
    I will.
    Никак. Вы думаете о параллельной среде как об однопоточной. Можете принудительно пускать юзверей в один поток, тогда такой проблемы не возникнет.

    Иначе алгоритм выглядит так:
    b51629f9d4a34e85a4bbd5173a7ba794.png
    Те пользователи что зашли и получили данные в промежутке пока «десятый» получил данные и закрыл страницу, тоже дойдут до конца и сохранят свои данные.

    Чтобы пустить пользователей в один поток на запись, можете лочить таблицу между получением данных и записью инкремента, или использовать кэш для счётчиков, там это всё будет быстрее, но суть та же — дождаться пока один пользователь завершит сессию прежде чем пускать другого.
    Ответ написан
    7 комментариев