Un buono schedulatore

  • by

SchedulerUno scheduler è un software che permette l’esecuzione di determinate attività ad orari o intervalli prestabiliti.

Si utilizza per esempio per effettuare trasferimenti di files, invio mail, controlli periodici secondo una logica automatica, per cui viene di fatto programmata l’esecuzione di una serie di attività tramite un’interfaccia intuitiva e non un linguaggio di programmazione.

Lo schedulatore di cui voglio parlare è il Radish scheduler, un software gratuito dalle prestazioni professionali. In realtà la licenza è shareware, nel senso che è gratis con una limitazione in termini di operazioni schedulabili. Il costo della licenza completa è comunque ridicolo: si parla di 35 euro.

Le operazioni che possono essere schedulate dal Radish scheduler sono veramente molte:

  • FTP per trasferimento files
  • Copia, move, cancellazione di files locali
  • Download http
  • Invio e lettura email
  • Scrittura di files di testo
  • Invio di messaggi syslog
  • Scrittura sul registro eventi di Windows
  • Esecuzione di comandi di sistema
  • Controllo dei servizi di Windows
  • Ping di server o database per verificare lo stato
  • Esecuzione comandi SQL con possibilità di esportazione CSV dei risultati

Non male, direi…

Tutte queste operazioni vengono poi combinate tra loro in quelli che la logica del programma chiama Job, cioè una concatenzazione di singole operazioni, condizionate dall’esito di quelle precedenti.

Un Job può per esempio prevedere il trasferimento di un file, verificare l’esito e inviare una mail con il file allegato o la segnalazione di errore. Possono con la stessa logica pensate operazioni molto più articolate.

I Job vengono poi “schedulati”, cioè programmati per essere eseguiti a determinati orari tramite un’interfaccia che prevede una pianificazione completa.

Le logiche con cui all’interno del Job i songoli Task sono legati tra di loro sono

  • La dipendenza
  • L’uso di variabili
  • Il codice di uscita

Dipendenza

Ogni task permette di essere esguito a seguito della verifica di una condizione. Possono essere verificati il valore di una variabile o il codice di uscita di un altro task.

Nell’esempio di prima, l’invio della mail che segnala l’errore è un task che viene eseguito se il precedente task di trasferimento ha un codice di errore diverso da 0

Codice di uscita di un task

I task hanno la caratteristica di restituire il valore 0 in caso di non errore o un valore diverso in caso di anomalia.

Il manuale riporta tutti i casi per consentiurne un corretto utilizzo.

Variabili

Si possono definire delle variabili, cioè dei nomi a cui associare un valore. L’utilizzo delle variabili permette il passaggio di informazioni tra una task e l’altro. Esistono alcune variabili predefinite (data, ora, …) e se ne possono creare di nuove all’interno di ogni singolo Job.

Per esempio si può valorizzare una variabile con dati provenienti da un database e utilizzarli per comporre il testo di una mail che viene inviata di notte.

Conclusioni

All’inizio ho avuto alcune difficoltà più che altro per comprendere la logica, ma con un po’ di tentativi sono riuscito a controllarlo senza problemi.

Ormai è più di un anno che lo utilizzo su alcuni server per eseguire operazioni di controllo e di integrazione tra applicazioni e devo dire che è uno strumento davvero utile.

Pagando la licenza si ha diritto anche ad un supporto, ma la disponibilità è sempre stata totale anche senza pagarla, quindi il giudizio finale è assolutamente positivo

Leave a Reply