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:11] m.biagiolisviluppo:queue [2018/03/19 10:45] (versione attuale) – modifica esterna 127.0.0.1
Linea 26: Linea 26:
   * **id**: Identificativo coda (fisso in base alla tipologia, es. ANPR)   * **id**: Identificativo coda (fisso in base alla tipologia, es. ANPR)
   * **status**: Contiene lo stato della coda   * **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 40: 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:
Linea 51: Linea 60:
 </code> </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.1492071068.txt.gz · Ultima modifica: 2018/03/19 10:45 (modifica esterna)