Overview
Scheduling
Schedulazioni operative, job pianificati e orchestrazione temporale.
Screenshot reference (manuale utente)
manual__scheduling__01.png: lista task schedulati con intervalli, tipo azione e stato ultima/prossima esecuzione.
Gestione task schedulati
Il modulo Scheduler esegue job pianificati leggendo la configurazione dalla tabella metadata dbo.scheduler e tracciando gli esiti in dbo.scheduler_execution.
Descrizione:
il servizio controlla periodicamente i task dovuti, esegue il comando e aggiorna gli stati di esecuzione.
Flusso runtime:
- poll periodico del backend (Hosted Service) sui task
enabled = 1enext_execution <= now. - esecuzione del task in base al tipo azione configurato.
- scrittura esito (
ok/errore, durata, messaggio) suscheduler_execution. - aggiornamento campi
last_execution,next_execution,last_ex_succeded.
Metadati tabella scheduler (campi principali)
id: identificativo task.enabled: abilita/disabilita il job.event_name: nome logico dell'evento schedulato.month_interval,day_interval,hour_interval,minute_interval,second_interval: intervalli combinabili usati per calcolare la prossima esecuzione.action_type: tipologia operazione eseguita dal job.action_cmd: comando associato al tipo azione.last_execution: timestamp ultima esecuzione.next_execution: timestamp prossima esecuzione pianificata.last_ex_succeded: flag ultimo esito (true/false).
Tipi azione (action_type) e significato
Snippet (mappa rapida):
1 | sql -> SQL / stored procedure2 -> web service3 -> metodo .NET (Namespace.Type.Method)4 -> mailing/lista distribuzione
1osql: esegue SQL/stored procedure.2: invoca un endpoint web service.3: invoca un metodo .NET (Namespace.Type.Method) via reflection.4: esegue azione mailing/lista distribuzione.
Tracciamento esecuzioni (scheduler_execution)
Per ogni run viene registrato almeno:
- riferimento al task schedulato.
- data/ora start e end.
- stato finale.
- eventuale messaggio di errore o output sintetico.
Questo consente audit operativo e troubleshooting dei job.
AppSettings rilevanti
Descrizione:
queste chiavi governano il ciclo di polling, la concorrenza per ciclo e i timeout SQL.
Snippet:
"Scheduler.Enabled": true"Scheduler.PollSeconds": 15"Scheduler.MaxTasksPerCycle": 20"Scheduler.RetryDelaySeconds": 60"Scheduler.SqlCommandTimeoutSeconds": 300
Enabled: abilita/disabilita lo scheduler backend.PollSeconds: frequenza di polling dei task dovuti.MaxTasksPerCycle: massimo numero task processati per ciclo.RetryDelaySeconds: ritardo minimo prima del retry dopo errore.SqlCommandTimeoutSeconds: timeout per i comandi SQL scheduler.
Risultato:
- scheduling prevedibile e controllabile per ambiente;
- tuning semplice su frequenza, throughput e robustezza in errore.
Screenshot
