sviluppo:itadaemon
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| sviluppo:itadaemon [2017/07/25 15:36] – f.margiotta | sviluppo:itadaemon [2024/10/15 09:45] (versione attuale) – modifica esterna 127.0.0.1 | ||
|---|---|---|---|
| Linea 12: | Linea 12: | ||
| * **executeStop($args)** Il metodo viene eseguito una sola volta, alla distruzione del demone, ovvero quando questo viene fermato o nel caso avvenga un' | * **executeStop($args)** Il metodo viene eseguito una sola volta, alla distruzione del demone, ovvero quando questo viene fermato o nel caso avvenga un' | ||
| * **getSleepTime()** questa funzione dovrà semplicemente restituire un integer che rappresenta il tempo in secondi fra un' | * **getSleepTime()** questa funzione dovrà semplicemente restituire un integer che rappresenta il tempo in secondi fra un' | ||
| + | E' inoltre possibile, ma non necessario, implementare i seguenti metodi: | ||
| + | * **checkStartPreconditions($args)** Il metodo viene eseguito una sola volta alla creazione del demone, in maniera simile ad un costruttore. | ||
| + | * **checkStopPreconditions($args)** Il metodo viene eseguito una volta prima di executeStop() | ||
| **n.b.** //Un crash completo del demone (come ad esempio quello provocato da un sigkill) non porta all' | **n.b.** //Un crash completo del demone (come ad esempio quello provocato da un sigkill) non porta all' | ||
| Linea 19: | Linea 22: | ||
| * Ogni sezione rappresenta un demone, con il nome della sezione che deve assumere il nome del demone | * Ogni sezione rappresenta un demone, con il nome della sezione che deve assumere il nome del demone | ||
| * All' | * All' | ||
| + | - //label//: Stringa di testo che rappresenta il nome esteso del demone, viene visualizzato nella console dei demoni | ||
| - // | - // | ||
| - | - // | + | |
| + | | ||
| + | - // | ||
| + | - // | ||
| + | < | ||
| + | label = 'Dummy daemon' | ||
| + | autostart = false | ||
| + | emailLog = CRITICAL | ||
| + | parameters[] = 1 | ||
| + | parameters[] = true | ||
| + | parameters[] = " | ||
| + | timeWarning = 180 | ||
| + | timeError = 1800 | ||
| + | </ | ||
| + | ===== Utilizzo del demone ===== | ||
| + | E' possibile lanciare e controllare un demone fondamentalmente in tre modi differenti: | ||
| + | * istanziando un oggetto di tipo itaDaemonManager e usando i metodi forniti da quest' | ||
| + | * Lanciando il file / | ||
| + | * Wrappando lo script php / | ||
| + | ==== Istanziare itaDaemonManager ==== | ||
| + | Per istanziare la classe di controllo dei demoni itaDaemonManager è sufficiente includere il file e creare un nuovo oggetto: | ||
| + | < | ||
| + | require_once ITA_BASE_PATH . '/ | ||
| + | $daemonManager = new itaDaemonManager(); | ||
| + | </ | ||
| - | Per fare in modo che la coda giri come servizio, | + | Una volta creato itaDaemonManager |
| - | Per creare | + | * **getDaemons()** Restituisce |
| + | * **getDaemonStatus($daemon)** Restituisce un array contenente le informazioni sul demone richiesto. Si consiglia di leggere il commento al metodo per maggiori informazioni. < | ||
| + | * **refreshDaemons()** Fa un controllo dello stato dell' | ||
| + | * **startDaemon($daemon,$args)** Avvia il demone passato con, opzionalmente, | ||
| + | * **stopDaemon($daemon,$args)** Ferma il demone passato | ||
| + | * **pauseDaemon($daemon)** Mette in pausa l' | ||
| + | * **resumeDaemon($daemon)** Permette di far ripartire un demone precedentemente messo in pausa. | ||
| + | Ogni metodo di itaDaemonManager può causare una Exception, risulta dunque opportuno usare tali metodi in un blocco try-catch. | ||
| < | < | ||
| - | <nome-daemon>Daemon.class.php. | + | try{ |
| + | $daemonManager-> | ||
| + | } | ||
| + | catch(ItaException $e){ | ||
| + | Out:: | ||
| + | } | ||
| + | catch(Exception $e){ | ||
| + | Out:: | ||
| + | } | ||
| </ | </ | ||
| + | La console di controllo dei demoni cwbDaemonConsole sfrutta tale metodo, se necessario implementare la gestione di un demone altrove si può usare tale implementazione come esempio. | ||
| - | I metodi da implementare sono: | + | **Nota:** I demoni sono gestiti in modo asincrono, l' |
| - | * **executeStart**: Metodo che viene invocato ad ogni iterazione. | + | |
| - | * **executeStop**: | + | |
| - | * **getSleepTime**: | + | |
| - | ====Configurazione==== | + | ==== Avvio tramite itaDaemonAutostart.php |
| - | Oltre alla creazione | + | Risulta sufficiente impostare l' |
| - | Ogni sezione del file di configurazione rappresenta un demone. | + | Lo script al suo avvio si occuperà |
| - | Per ogni demone sono presenti due chiavi: | + | |
| - | * **autostart** può essere impostata a true o false e indica se il demone va lanciato automaticamente dallo script /// | + | |
| - | * **parameters** sono i parametri addizionali da inviare al demone, possono essere definiti più parametri usando il carattere | + | |
| - | ====Servizio==== | + | Il controllo dei demoni gestiti da itaDaemonAutostart può essere fatto tramite lo script itaDaemonController.php. |
| + | In particolare lo script accetta questa sintassi: | ||
| + | php itaDaemonController.php < | ||
| + | dove comando può essere: | ||
| + | * start | ||
| + | * stop | ||
| + | * pause | ||
| + | * resume | ||
| + | * status | ||
| + | Inoltre se al posto del nome del demone verrà passata la string all il comando verrà eseguito per tutti i demoni (utile per avere lo status di tutti i demoni presenti, avviarli o fermarli tutti, etc). Esempio: php itaDaemonController.php all start | ||
| + | **Nota:** C'è possibilità di interscambio dei metodi di controllo, risulterà dunque possibile controllare tramite la classe itaDaemonManager un demone lanciato tramite itaDaemonAutostart e viceversa. | ||
| + | |||
| + | ==== Wrap dello script itaDaemonExecutor.php in un demone (Linux) ==== | ||
| + | E' possibile wrappare un demone usando itaDaemonExecutor.php all' | ||
| Centos7: creazione di un nuovo script (/ | Centos7: creazione di un nuovo script (/ | ||
| Linea 69: | Linea 120: | ||
| php / | php / | ||
| </ | </ | ||
| + | |||
| + | ==== Wrap dello script itaDaemonExecutor.php in un servizio (Windows) ==== | ||
| + | {{ : | ||
| + | In maniera analoga a quanto fatto per linux è possibile procedere alla registrazione di un servizio Windows usando NSSM per wrappare lo script itaDaemonExecutor.php < | ||
| + | |||
| + | **Nota:** A differenza che per i metodi precedenti il wrap dello script php in un demone/ | ||
| + | |||
| + | **Nota:** Il modo più robusto e compatibile per lanciare e gestire i demoni di itaEngine è effettuare il wrap di itaDaemonAutostart.php in un demone/ | ||
| + | |||
sviluppo/itadaemon.1500996962.txt.gz · Ultima modifica: (modifica esterna)
