@jenya7771

Как делать только один одновременный запрос для пользователя?

Здравствуйте, есть путь по которому в течении минуты происходит обработка, как сделать так, что бы одновременно происходила только одна обработка для одного юзера, то есть после завершения он мог делать следующую?
Я думал на счёт редиса и сессий, что лучше использовать или какой есть ещё вариант?
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
yellow79
@yellow79
Senior Software Engineer
Если вам не нравится использовать редис и сессии, то можете использовать память и куки. У вас должен быть глобально доступный объект, в который вы пишете ID пользователя(куки), по окончании обработки задачи удаляете ID из объекта. При поступлении запроса, смотрите куку, далее смотрите в объекте с записями, если такой пользователь есть, то возвращаем 429 ошибку, если куки нет, или в объекте нет записи о ней, то можно заводить новую задачу. Но вообще, можно было бы организовать очередь задач, но это уже совсем другая история и надо смотреть на то, что вы хотите получить на выходе
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы