Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: gestione concorrenza

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    32

    gestione concorrenza

    ciao qualquno mi sa dare qualche indicazione sulla gestione della concorrenza?

    ho una pagina in cui si puo' scegliere un esercizio.
    io ho due utenti che se accedono da client diversi alla stessa pagina, puo' capitare che se un utente scegli un esercizio, l'utente all'altro client non vedra che l'esercizio è stato scelto e vorrei sapre come gestire questa cosa

  2. #2
    Ciao
    puoi risolvere il tutto creando semplicemente una tabella mysql/un file dove salvi gli esercizi che vengono man mano scelti. Ovviamente quando devi mostrare la lista degli esercizi controlli in questa tabella/file escludendo man mano quelli già scelti e quindi presenti nel recordset. Ovviamente ti conviene pensare anche ad un meccanismo di timeout nel caso un certo esercizio non venga risolto in maniera tale da sbloccarlo automaticamente anche per gli altri utenti...

    ratatuia

  3. #3
    OT: ehi ratatuia da quanto tempo!!! Welcome back!!!
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  4. #4
    a dire il vero non me sono schiodato da qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    32
    ciao grazie per la risposta ma mi potresti dare un aiuto in piu nella pratica?

    magari posso postare il codice che ho usato per farti vedere cosa devo modificare?

    ciao e grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    32
    io faccio in questo modo

    quando un utente scegli un esercizioA facendo
    clic su un pulsante, al db arriva la richiesta
    di modificare la tabella esercizio che contiene un campo
    "stato esercizio" che viene impostato a "occupato".
    quando un altro utente sta vedendo contemporaneamente la stessa
    pagina, non si accorge che l'esercizioA è stato già scelto,
    ma quando prova a sceglierlo con il clic gli viene detto con una scritta che
    l'esercizio è stato già scelto.questo perche al clic
    parte un controllo alla tabella esercizio che vede se il campo stato esercizio
    è su occupato.

  7. #7
    guarda, è semplicissimo...

    fatto il caso in cui tu usi una tabella "eserciziInSvolgimento" avrai come campi id_esercizio, id_user, timestamp.

    quando un utente sceglie un esercizio scrivi nella tabella, quando finisce di risolverlo rimuovi dalla tabella il record corrispondente...
    per il garbage collection (l'operazione di pulizia dei records non più utili perchè gli utenti non hanno portato a termine l'esercizio) puoi metterlo prima di ricavare l'elenco degli esercizi disponibili cancellando dalla tabella tutti quei records dove la differenza tra l'ora corrente e l'ora in cui l'esercizio è iniziato è maggiore di N minuti dove N è un numero arbitrario da te deciso...

    ciao
    ratatuia

  8. #8
    ho visto ora il tuo metodo, va bene egualmente (anzi forse meno macchinoso), ricordati solo il timestamp per il garbage collection

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    32
    in che modo posso inserire il timestamp?questa parte mi è meno chiara

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    32
    non mi è molto chiara la parte sul garbage collection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.