Argomento precedente: Esecuzione in sequenza di un processoArgomento successivo: Controllo dei processi


Daemon e altri processi ciclici

Se si desidera eseguire ripetutamente un processo, creare un ramo ciclico in un oggetto Processo anziché utilizzare l'operatore Avvia processo per richiamare ripetutamente un secondo processo. Un processo ciclico viene eseguito in un ciclo infinito. Nessuna iterazione crea nuove istanze dell'oggetto Processo. Il vantaggio principale dell'implementazione di un ramo ciclico è che la logica che esce dal ciclo si trova nel processo stesso. Il processo non dipende da fattori esterni in un processo principale. Il processo si comporta come un oggetto autonomo.

Gli esempi di processi ciclici eseguiti per un tempo indefinito includono:

Esempio di processo ciclico

Questa figura mostra un esempio di esecuzione in sequenza di un processo.

Elemento:

Descrizione:

Operatore Avvia 1: iniziare il processo con un operatore Avvia standard.

Operatore Avvia processo: progettare una sequenza di operatori che rappresentano la funzionalità che si desidera ripetere o eseguire ciclicamente. Questo ramo può anche includere un operatore Avvia processo per avviare le istanze di un secondo processo.

Operatore Avvia 2: l'operatore Avvia presenta un collegamento di ingresso facoltativo. Quando giunge al secondo operatore Avvia, il processo reinizializza tutti gli altri operatori e riavvia il processo partendo di nuovo dall'operatore Avvia 1.

Porta di uscita e collegamento: per uscire da questa sequenza ciclica, specificare una condizione di uscita.

Nota: un metodo alternativo per interrompere un processo ciclico consiste nell'utilizzare un ramo indipendente con il proprio operatore Avvia. Il ramo può attendere che la porzione del processo che viene eseguita in sequenza modifichi una variabile o liberare una risorsa. Dopo che si sono verificati questi eventi, il ramo indipendente viene eseguito; ad esempio, inviando un avviso di posta elettronica o elaborando un operatore Arresta.