I problemi di concorrenza sono tra i peggiori in assoluto, questo si sa, e spesso si corre il rischio di credere di aver trovato una soluzione salvo poi trovarti il programma che inspiegabilmente sbaglia.
E' cosa nota che qualche anno fa un programmatore sbagliò la programmazione concorrente di un apparecchio per radiazioni a scopo medicale -- al tempo non so nemmeno se esistessero i semafori, si parla di anni addietro.
Una persona morì....
Comunque,
Pensa poi se l'utente chiude il browserMa se i posti disponibili sono 50 e io locco tutto per una prenotazione da un posto e tale utente ci mette mezz'ora a finire la procedura.. il sistema non risulta assolutamente efficente, tutti gli altri utenti risultano inutilmente bloccati (tra l'altro ho anche un mancato guadagno).![]()
Ottimo, in passato ho fatto anch'io cosa simile, solo che nel mio caso era più azzeccato in quanto i numeri persi non importavano un fico secco.Un'altra idea potrebbe essere quella di scalare direttamente il numero dei posti desiderati dal totale disponibile dopo il punto 1 e non loccare la tabella. Se si arriva a fine procedura lascio inalterato il numero di posti disponibili, altrimenti lo reincremento.
Via sessione; io darei cmq un tempo limite, dopo di che procederei a reincrementarei posti.Ma come fa il sistema a capire che la prenotazione non è stata completata se l'utente non clicca su annulla ma chiude direttamente il browser?
E' una prima mia idea, magari ragionando assieme può esserci una soluzione di gran lunga migliore. D'acchitto mi viene questa.![]()