Validazione nell’utilizzo del modulo croniter di python

validazione nell’utilizzo del modulo croniter di python

la chiamata is_valid applicata al monitoraggio dei crontab

nel progetto che sto seguendo, devo monitorare tramite un unico pannello, tutti i vari job sparsi nei nostri server. Capire quali girano e con quale frequenta.

Inizialmente li abbiamo dovuti implementare ciascuno, cominciando con un solo server pilota, per verificare in primis il funzionamento ma anche per aggiugere la chiamata api che comunica con il mio progetto.

Ho esposto un servizio per ricevere i parametri e qui controllo soprattutto che la sintassi della frequenza sia valida, altrimenti tutto quello che avviene in seguito non funzionerà nella maniera corretta. Di seguito uno screen

successivamente lato backend, una volta che il dato è acquisito, verifico la prossima volta che dovrebbe girare lo script grazie alla funzione get_next, e se non mi arriva comunicazione dell'effettivo lancio oppure ho comunicazione del lancio ma non dell'avvenuta fine esecuzione, allora notifico il problema.

Di seguito il pezzo di codice che, recuperando l'ultima esecuzione, calcola quando dovrebbe essere la successiva con la funzione get_next e se la data restituita è inferiore ad ADESSO, siamo di fronte ad un problema catturato

Maybe you might be interested

come aumentare un contatore in pyhon in un template jinja
come aumentare un contatore in pyhon in un template jinja

il codice seguente è stato scritto e testato nella versione 3.9 e utilizzando il namespace

    alert = db.session.query(Job.script).distinct().filter(Job.giorno >= periodo_time)
dettagli = {}
for riga in alert:
quale = Job.query.filter_by(script=riga.script).order_by(Job.inizio.desc()).first()

i_anno, i_mese, i_giorno, i_ora, i_minuti, i_secondi = quale.inizio.strftime("%Y %m %d %H %M %S").split(' ')
partiamo_da = datetime(int(i_anno), int(i_mese), int(i_giorno), int(i_ora), int(i_minuti), int(i_secondi))
#entro_il = partiamo_da + timedelta(minutes=500)

cron = croniter.croniter(quale.cron, partiamo_da)
quale.successivo = cron.get_next(datetime)

quale.partiamo_da = partiamo_da
if (datetime.now() > quale.successivo):
quale.avvisa = 'KO'
else:
quale.avvisa = 'OK'

dettagli[riga.script] = quale

In accordance with the Terms of Use, responsibility for published content rests solely with the user who created it. Perungiorno.it disclaims any liability for content submitted by users.
Report

Maybe you might be interested

come usare un token a tempo per resettare la password in python
come usare un token a tempo per resettare la password in python

in questa mia prima esperienza ho usato la classe TimedJSONWebSignatureSerializer sulla versione 3.8

Come la luce nel vetro ha reso possibile l’era digitale globale
Italiano English العربية

il contachilometri, l’invenzione di Archimede

Weeping Angel - il malware della CIA che infettò la TV Samsung

Taiwan, Cina e semiconduttori: una distanza tecnologica profonda
Italiano Deutsch

Come l’intelligenza artificiale può arrivare a discriminare per etnia