Strumenti Utente

Strumenti Sito


sviluppo:queue

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
sviluppo:queue [2017/04/13 07:58] m.biagiolisviluppo:queue [2018/03/19 10:45] (versione attuale) – modifica esterna 127.0.0.1
Linea 21: Linea 21:
   * **disabled**: Messaggio disabilitato   * **disabled**: Messaggio disabilitato
   * **username**: Nome utente utile per sapere chi ha inserito il messaggio in coda   * **username**: Nome utente utile per sapere chi ha inserito il messaggio in coda
 +
 +=====Coda=====
 +La coda è composta dalle seguenti informazioni:
 +  * **id**: Identificativo coda (fisso in base alla tipologia, es. ANPR)
 +  * **status**: Contiene lo stato della coda
 +  * **messages**: Contiene la lista dei messaggi attualmente presenti nella coda
 +Lo stato, a sua volta, contiene le seguenti informazioni:
 +  * **lastMessageInserted**: informazioni riguardanti l'ultimo messaggio inserito (uuid, alias e timestamp)
 +  * **lastMessageProcessed**: informazioni riguardanti l'ultimo messaggio elaborato (uuid, alias e timestamp)
 +  * **lastQueueModifyTime**: Data/ora ultima modifica
 +  * **messagesToProcess**: numero di messaggi in coda da elaborare
 +  * **customAttributes**: attributi custom della coda (array associativo, gestione totalmente libera)
  
 =====Gestore della Coda===== =====Gestore della Coda=====
 +Il gestore si occupa delle operazioni che andranno ad interagire con la coda.
 +L'implementazione specifica è determinata dal parametro "queueType" presente nel file di configurazione (Utilizzando apposita factory).
 +Attualmente l'unica implementazione possibile è quella fatta con la cache, la classe corrispondente è 'itaQueueManagerCache' (presente il lib/itaPHPQueue/ityaQueueManagerCache.class.php).
 Il gestore della coda si occupa delle seguenti operazioni: Il gestore della coda si occupa delle seguenti operazioni:
   * **createQueue**: Crea una nuova coda   * **createQueue**: Crea una nuova coda
Linea 31: Linea 46:
   * **queueStatus**: Restituisce lo stato della coda   * **queueStatus**: Restituisce lo stato della coda
   * **getLastError**: Restituisce l'ultimo errore avvenuto   * **getLastError**: Restituisce l'ultimo errore avvenuto
-  * **updateLastMessageProcessed**: Effettua l'aggiornamento della coda con l'esecuzione del messaggio appena eseguito+  * **updateLastMessageProcessed**: Effettua l'aggiornamento della coda con l'esecuzione del messaggio appena eseguito
 +  * **findMessage**: Ricerca i messaggi sulla coda 
 +  * **updateMessage**: Aggiorna messaggio sulla cosa 
 + 
 +Per reperire l'oggetto gestore, occorre fare in questo modo: 
 +<code> 
 +$qm = itaQueueFactory::getQueueManager(); 
 +</code> 
 + 
 +Esempio di creazione di una coda: 
 +<code> 
 +$created = $qm->createQueue($itaQueueManagerBase::MESSAGE_TYPE_ANPR); 
 +</code> 
 + 
 +=====Worker===== 
 +Ogni tipologia di coda ha una classe worker specifica, che si occupa dell'elaborazione del singolo messaggio.  
 +Ad esempio, per ANPR, la classe specifica è 'itaQueueWorkerANPR' presente in 'lib/itaPHPQueue/workers/itaQueueWorkerANPR.class.php'
 +Il worker è chiamato dal CLI, anch'esso specifico. Sempre nel caso di ANPR, lo script CLI da lanciare è 'queueWorkerANPR.php'
 + 
 + 
 +=====Daemon===== 
 +Per fare in modo che la coda giri come servizio, è opportuno scrivere un apposito daemon e registrarlo nel sistema come servizio. 
 +Per creare un nuovo daemon, basta semplicemente creare una nuova classe in /daemon/daemons/ con la seguente nomenclatura: 
 + 
 +<code> 
 +<nome-daemon>Daemon.class.php. 
 +</code>
  
 +I metodi da implementare sono:
 +   * **executeStart**: Metodo che viene invocato ad ogni iterazione.
 +   * **executeStop**: Metodo che viene invocato allo stop del servizio.
 +   * **getSleepTime**: Restituisce il numero di secondi di inattività tra un'iterazione e l'altra.
  
 +Per maggiori informazioni consultare la documentazione relativa ad [[itaDaemon|itaDaemon]]
sviluppo/queue.1492070282.txt.gz · Ultima modifica: 2018/03/19 10:45 (modifica esterna)