cron
è l'utility di riferimento per tutti gli utenti che desiderano programmare un processo all'interno di un sistema unix-like come Linux. Si tratta di uno strumento basato sulla linea di comando che fino ad ora ha avuto poche alternative. Ciò rende particolarmente interessante il progetto Cronicle, un tool multi-server per la schedulazione e l'esecuzione dei task che ha il vantaggio di offrire un front-end con interfaccia utente Web based.
Le funzionalità di Cronicle
Cronicle è stato realizzato utilizzando Node.js, il runtime JavaScript basato sull'engine V8 che rappresenta uno standard per la realizzazione di applicazioni scalabili. Tra i suoi vantaggi vi è quello di accettare comandi da shell, permette inoltre di utilizzare plugin scritti in qualsiasi linguaggio.
Si possono gestire task schedulati, processi che devono essere ripetuti periodicamente e job on-demand. Non vi è alcun limite riguardo ai server utilizzabili ed è disponibile un visualizzatore live dei log per consultare la registrazione dei dati in tempo reale. Il tool supporta la rilevazione automatica dei server nelle vicinanze, la schedulazione degli eventi in più timezone e permette di tracciare l'uso delle risorse (CPU e memoria RAM) per ogni singolo job configurato.
Molto utile anche la disponibilità di Web hooks per interfacciarsi con i sistemi di notifica esterni. Non mancano nemmeno una semplice API REST per la programmazione e l'esecuzione degli eventi, un sistema di messaggistica per il plugin basato su JSON e le ormai indispensabili API che per l'autenticazione con le applicazioni remote.
La Web UI di Cronicle
Rilasciato sotto licenza Open Source e ospitato in un repository dedicato su GitHub, Cronicle dispone di una dashboard nella cui Home è possibile visualizzare le informazioni di base sui job attivi e quelli che dovrebbero essere eseguiti nelle 24 ore successive.
Qualsiasi evento, associato ad un identificatore univoco, può essere editato in qualunque momento per aver un controllo completo sui progetti schedulati. È inoltre possibile dividere gli eventi in categorie specifiche per una gestione più razionale della schedulazione.