169 похожих чатов

So in a movie ticket booking scenario If user A

and User B tried to book a slot at 3pm at the same time
My backend will receive the req and it will check whether that seat is available or not in my database
So two request will be sent to db from my server for the user A and B, it will return that seat is available for both users
So server will try to book for both
I am using nodejs as backend so the db op will be async

So how do I prevent this thing ?
Should I use some global variable or something and lock a particular seat so after db operation if the variable is not locked that user can book and the variable will be locked so when other user tries to access that variable it will say the slot is already chosen

3 ответов

16 просмотров

How is it stored? Are the "seats" already there(as unbooked) and are they updated as someone books them or are the table rows inserted as the person books them?

Use queueing system, where you process requests one at a time. There are many such libraries Or have a pool of available seats in memory and remove when claimed

Richard | If you DM for support you PAY
Use queueing system, where you process requests on...

When you say in memory what kind of databases are we talking about here? Redis?

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

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта