Concorrenza pessimistica in un'applicazione web

0

Sto lavorando su un'applicazione che supporterà il lavoro in più schede allo stesso tempo. Attualmente, quando un documento è bloccato da un utente, gli altri utenti non potranno accedere allo stesso documento ma lo stesso utente potrebbe, se lo desidera, riaprire quello stesso documento in una nuova scheda.

Il mio problema al momento è che, quando l'utente chiude una scheda, il blocco viene annullato per quel documento anche se sono aperte più schede dello stesso documento.

Stavo pensando di aggiungere un contatore al mio blocco, ma se la persona aggiorna la pagina, ciò incrementerebbe solo il blocco. C'è anche la possibilità di sbloccare il documento quando la pagina viene scaricata, ma sarebbe possibile che un'altra richiesta blocchi il documento prima che sia stato ricaricato dall'utente.

Esiste un modo migliore per bloccare i documenti per un utente in un'applicazione web del genere?

    
posta Stéphane Pelletier-Lamothe 30.05.2018 - 20:11
fonte

1 risposta

1

L'utente ha davvero bisogno di aprire lo stesso documento in 2 schede in una sola volta? Se questo è davvero un caso d'uso reale, basta fare la seconda copia di sola lettura. Lascia solo una scheda aperta per la modifica su tutti gli utenti.

Potresti attivare il blocco dopo la prima modifica (prima pressione del tasto, ad esempio). Quindi se colpiscono l'aggiornamento, perdono le loro modifiche e rilasciano il blocco simultaneamente che è logico.

Il blocco verrebbe rilasciato anche quando l'utente ha eseguito il commit della modifica.

Quando vai a impostare il blocco, puoi anche verificare la presenza di un documento obsoleto e forzare l'utente ad aggiornare prima della modifica.

    
risposta data 30.05.2018 - 22:26
fonte

Leggi altre domande sui tag