Czy w Expressie można obsługiwać żądania do jednej trasy pojedynczo ? Mam „kolejkę do kasy” i za każdym razem, gdy tworzona jest kasa, zapasy są zmniejszane. Jednak jednoczesne POST żądanie utworzenia kasy sprawdza stan zapasów przed ich zmniejszeniem w pierwszym żądaniu, co powoduje nadmierną sprzedaż. Uwaga: żądanie trwa tylko około 300 ms, więc użycie Bull lub jakiejkolwiek innej techniki kolejkowania wydaje się nieco przesadzone. Czy jest jakiś sposób, aby skonfigurować trasę tak, aby akceptowała żądania jeden na czas?

Używam Firestore jako magazynu danych.

2
Ben Botvinick 1 kwiecień 2020, 06:34

3 odpowiedzi

Najlepsza odpowiedź

Powinieneś użyć operacji blokowania na poziomie sklepu, takich jak transakcje w Firestore .

2
Animir 2 kwiecień 2020, 01:40

Sprawdź poniższy moduł npm, którego możesz użyć jako oprogramowania pośredniego

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

0
Rahul Kumar 1 kwiecień 2020, 05:46

Node.js z natury jest aplikacją jednowątkową, więc nie może wykonywać wielu żądań jednocześnie. To, co dzieje się wewnętrznie w pętli zdarzeń, może dodać wywołanie zwrotne do kolejki zdarzeń.

enter image description here

Aby obsłużyć wiele żądań, możesz użyć paradygmatu async / await.

-2
Ayman Arif 1 kwiecień 2020, 06:48