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 08:03] m.biagiolisviluppo:queue [2018/03/19 10:45] (versione attuale) – modifica esterna 127.0.0.1
Linea 23: Linea 23:
  
 =====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=====
Linea 38: Linea 47:
   * **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: Per reperire l'oggetto gestore, occorre fare in questo modo:
 <code> <code>
-itaQueueFactory::getQueueManager();+$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> </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.1492070633.txt.gz · Ultima modifica: 2018/03/19 10:45 (modifica esterna)