modo semplice per impedire a più utenti di lavorare sulla stessa attività

0

Il nostro cliente ha un software, in cui i biglietti arrivano. Più dipendenti sono responsabili di rispondere a questi biglietti (via telefono), in un breve lasso di tempo (richiamare entro X minuti).

Quale sarebbe il modo più semplice per impedire a 2 dipendenti di richiamare lo stesso client / lavorare sullo stesso ticket?

Il cliente ha suggerito che i ticket dovrebbero essere assegnati automaticamente a utenti specifici, in base a chi è online e chi ha meno biglietti.

C'è una soluzione più ovvia e più semplice?

    
posta user1721135 04.06.2017 - 01:38
fonte

3 risposte

5

Normalmente un sistema di ticket per avere stati per ogni ticket, costituito in minima parte da "aperto" e "chiuso" (anche se potrebbe essere molto più complesso).

Avere un altro stato chiamato "in corso", insieme a un assegnatario (utente). Quando qualcuno va a ritirare il biglietto, lo si cambia in "in corso" e lo si imposta come assegnatario.

Il trucco è di controllare esplicitamente lo stato durante la transizione, in modo atomico. Ad esempio, se stai usando SQL, dovresti fare qualcosa del genere:

UPDATE ticket SET 
  state = 'inprogress',
  assignee = @thisUserId,
WHERE ticketId = @ticketId
  AND state = 'open'
  AND assignee = @currentAssignee

Le ultime due linee WHERE assicurano che non ci siano conflitti: se due utenti decidono entrambi di prendere il ticket contemporaneamente, solo una di queste query può funzionare - l'altra fallirà, perché lo stato e / o l'assegnatario è cambiato (facendo ora che le righe corrispondano alla condizione di aggiornamento).

È possibile rilevare questa condizione (0 righe aggiornate) e quindi mostrare un messaggio che dice qualcosa sull'effetto di "Mi dispiace, il ticket non può più essere assegnato" e ricaricare lo stato corrente dal database.

    
risposta data 04.06.2017 - 03:27
fonte
3

In cosa stai descrivendo, in che modo la pre-assegnazione ai dipendenti attualmente occupati aiuta a tutti (il suggerimento del cliente)?

Ci dovrebbe essere una coda di lavoro, che un dipendente prende ogni volta che hanno un momento libero (per restituire una chiamata). Questo è ciò che è noto come just in time, o in altre parole, dinamico.

L'altro modo, non sai quando diventeranno gratuiti, stai solo indovinando e potresti avere ragione o potresti sbagliarti!

    
risposta data 04.06.2017 - 04:00
fonte
3

Scrivi il "biglietto" su un pezzo di carta. Puoi lavorare su di esso solo quando hai effettivamente il ticket fisico

    
risposta data 04.06.2017 - 11:23
fonte

Leggi altre domande sui tag