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 = 1 e next_execution <= now.
  • esecuzione del task in base al tipo azione configurato.
  • scrittura esito (ok/errore, durata, messaggio) su scheduler_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 procedure
  • 2 -> web service
  • 3 -> metodo .NET (Namespace.Type.Method)
  • 4 -> mailing/lista distribuzione
  • 1 o sql: 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

scheduling / main
scheduling / main