Gestione aggraziata di compiti programmati dipendenti?
-
05-07-2019 - |
Domanda
Supponi di avere due processi pianificati: A e B.
Dato che B non dovrebbe funzionare fino al completamento di A, come potrei imporre con garbo questa dipendenza?
Approcci che sono stati considerati:
-
Avere una pianificazione B al completamento. Questo ha il rovescio della medaglia di B mai programmato se per qualche motivo A fallito.
-
Quando B viene eseguito, esegui il ping A per vedere se quest'ultimo è stato completato. Come ciò possa essere realizzato (rete, file, record del database, coda dei messaggi) potrebbe essere disordinato e problematico introducendo una terza dipendenza.
-
Combina A e B in un singolo processo. Questo ha il rovescio della medaglia di legare strettamente i due, rendendo più difficile rieseguire l'uno o l'altro in isolamento, se necessario.
Pensieri?
Soluzione
L'opzione 1 risponde direttamente alla tua domanda: se B dipende da A e A non riesce, A non programmare B significa che B non può accadere.
A meno che B non debba semplicemente correre dietro ad A, indipendentemente dal fatto che A abbia avuto successo.
In tal caso, funzionerebbe qualcosa di simile al seguente (in bash):
A && B
Altri suggerimenti
È possibile modificare il passaggio 3: creare i due processi da eseguire in modo isolato, quindi creare un terzo processo che esegue gli altri due.