Обрабатывать Express запросов по одному - PullRequest
2 голосов
/ 01 апреля 2020

В Express возможно ли обрабатывать запросы к одному маршруту по одному ? У меня есть «очередь на заказ», и каждый раз, когда создается заказ, запас уменьшается. Однако одновременный POST запрос на создание кассы проверяет запас до того, как запас уменьшится в первом запросе, что вызывает перепроданность. Примечание: запрос занимает всего около 300 мс, поэтому использование Bull или любого другого метода организации очередей кажется чрезмерным. Можно ли каким-либо образом настроить маршрут для приема запросов по одному -time?

Я использую Firestore в качестве хранилища данных.

Ответы [ 3 ]

2 голосов
/ 02 апреля 2020

Вы должны использовать блокирующие операции на уровне хранилища, такие как транзакции для Firestore.

0 голосов
/ 01 апреля 2020

Node.js по своей природе является однопоточным приложением, поэтому оно не может выполнять несколько запросов одновременно. Что происходит внутри его события l oop, он может добавить обратный вызов в очередь событий.

enter image description here

Вы можете использовать async / await парадигма для обработки нескольких запросов.

0 голосов
/ 01 апреля 2020

Проверьте ниже npm модуль, который вы можете использовать в качестве промежуточного программного обеспечения

https://www.npmjs.com/package/express-rate-limit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...