petushok55
@petushok55
Обучаюсь на практике.

Почему async функции багаются быстрыми запросами? Как доработать?

Привет всем.
Есть веб-приложение(сайт) на node.js использую express

Суть проблемы в том что, что при очень быстрой отправке запросов от одного пользователя, на сервере эти запросы обрабатываются беспорядочно.

Здесь я максимально упростил код и смоделировал ситуацию
Допустим есть
код

const max_clicks = 30;
router.get('/something', async (req, res) => {
    let clicks = await // запрос в бд, который вернёт текущее количество кликов
    if(clicks < max_clicks ){
        await clickPlus(); // запрос в бд, который прибавляет один клик
    }
    res.render... // для приличия вернём что-нибудь
});


И вот в этом случае, если отправить много очень быстрых запросов количество "кликов" выйдет далеко за 30.
В чём проблема мне ясно, но как посоветуете решить её лучшим образом?
Так как этот запрос выполняется для каждого юзера отдельно, нужно наверное сделать что-то типа очереди запросов для каждого юзера по определённому адресу

p.s проблема не конкретно с кликами, я для наглядности так описал
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

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