by majinbu » 21 October 2024, 8:06
Se l'applicazione è installata server session questa viene sempre eseguita a partire da quando parte il server o dopo l'installazione/aggiornamento della stessa,
se il timer supponi si attivi ogni 5 minuti (io ho vari timer alcuni girano ogni 5 minuti altri ogni 15) poi 'sotto' ci va un sistema che 'sa' quando va eseguito il task.
Nel mio caso ho un paio di tabelle a DB (locale) che per ogni task che viene eseguito hanno definito quando eseguirlo. Tipo che ne so in giorni specifici, orari specifici, ogni tot. etc etc.
Ti faccio un paio di esempi per chiarire meglio:
Task che fa un operazione specifica su varie tabella del db (collegato con un connector), esso viene attivato in un arco di tempo compreso tra le 23 e le 01 di notte ed eseguito ogni 15 minuti, per cui il timer quando viene eseguito verifica che non ci siano altri task attivi uguali e poi se l'orario corrisponde a quello impostato va a eseguire un metodo specifico (fa un mod sui minuti per vedere se si dividono per 15, per cui lo fa alle 23 - 23,15 23,30, 23,45 etc etc) dato che ho limitato il numero di records che processa devo farlo eseguire ripetutamente per completarlo oltre che lo fa su 7 db collegati ad altrettanti connectors.
Un altro task invece viene eseguito semplicemente ogni 5 minuti e se trova che quell'azione specifica non è stata eseguita la esegue e la marca come fatta (nel mio caso di solito sono invii di alet via email)
Un ultimo task invece va eseguito esattamente alle 23,55 ma solo da Lun-Ven per cui il timer è più ricorrente se no magari manca l'orario e quando si accorge che sono le 23,55 esegue un metodo e fino al giorno dopo non lo rieseguirà più.
Come dicevo tutta questa gestione dei task è fatta tramite db e una console dove posso fare io il tuning esatto di quando voglio venga eseguito un certo task.
Spero di essere stato più chiaro e che ti sia utile
Ciao