Come progettare un requisito simile a un cronjob

2

Devo progettare un sistema in cui ho bisogno di fare un po 'di elaborazione (che potrebbe richiedere 10 minuti).

Dopo un po 'di tempo (diciamo 30 minuti), ho bisogno di tornare indietro e controllare lo stato di questa elaborazione ed eventualmente interrompere qualsiasi ulteriore elaborazione.

Ci sarebbero più processi di questo tipo licenziati e in esecuzione sequenzialmente o in parallelo. Ciascuno avrebbe un tempo di elaborazione diverso e ognuno avrebbe un diverso tempo di "arresto".

Un modo è che questo sarebbe un cronjob che ritorna ogni 30 minuti e controlla il componente di elaborazione.

La mia soluzione è attualmente progettata su NodeJS e intendo che sia senza stato. Sto eseguendo una richiamata in un intervallo di 10 minuti per controllare lo stato finale.

Quello che voglio sapere è come sono progettati tali sistemi? Esiste un'alternativa migliore ad avere un cron job e / o un polling continuo per lo stato di un'elaborazione. come lo faresti?

Se sono troppo vago nel requisito, faccelo sapere e posso aggiungere ulteriori dettagli.

    
posta ksprashu 28.03.2016 - 13:45
fonte

1 risposta

2

Tali progetti richiedono uno strumento che gestisca la pianificazione e il monitoraggio del lavoro nonché le dipendenze tra i lavori (come: Trigger Job B solo se Job A ha esito positivo, se A fallisce quindi avvia il processo C, se A viene eseguito per più di 10 minuti , trigger job D ecc.).

Autosys / Tivoli sono probabilmente i prodotti più utilizzati in azienda, ma molto probabilmente sarebbero un eccesso in questa situazione.

Autosys: link Tivoli: collegamento

In questa situazione specifica, le opzioni sono:

  1. Utilizza uno strumento come quello menzionato sopra. Questo elenco ha anche strumenti open source. link
  2. Imposta questo meccanismo con cron
  3. Scrivi codice personalizzato in jods.js o script di shell.
risposta data 28.03.2016 - 16:26
fonte

Leggi altre domande sui tag