hobby:development:sql:database_scheduler

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
hobby:development:sql:database_scheduler [2026/08/14 13:53] mauro.cortesehobby:development:sql:database_scheduler [2026/08/14 14:00] (versione attuale) mauro.cortese
Linea 4: Linea 4:
 \\ \\
 \\ \\
 +
 +Scheduler table-driven in SQL Server, basato su SQL Server Agent con una tabella di configurazione e una stored procedure "dispatcher".
 +
 +=== Architettura ===
 +  - **Tabella di configurazione:** definisce quali procedure eseguire, con che frequenza, se sono attive
 +  - **Tabella di log:** traccia le esecuzioni (successo/errore, durata)
 +  - **Stored procedure dispatcher:** legge la config, decide cosa è "dovuto" eseguire, lancia le procedure con EXEC dinamico e gestione errori
 +  - **Un solo SQL Server Agent Job:** che gira ogni minuto (o ogni X minuti) e chiama il dispatcher
 +Vantaggio: non serve creare un job Agent per ogni procedura, ne basta uno solo che orchestra tutto in base alla tabella.
 +
  
 === Creazione delle tabelle === === Creazione delle tabelle ===
Linea 41: Linea 51:
 -- ----------------------------------------------------------------------------------- -- -----------------------------------------------------------------------------------
 CREATE TABLE dbo.scheduler_config_times ( CREATE TABLE dbo.scheduler_config_times (
-    ID             INT IDENTITY(1,1) PRIMARY KEY, +    Id             INT IDENTITY(1,1) PRIMARY KEY, 
-    ConfigID       INT               NOT NULL REFERENCES dbo.scheduler_config(ID),+    ConfigID       INT               NOT NULL REFERENCES dbo.scheduler_config(IdJob),
     RunTime        TIME              NOT NULL,        -- e.g. '08:00:00'     RunTime        TIME              NOT NULL,        -- e.g. '08:00:00'
     LastRunDate    DATE              NULL             -- last calendar date this specific slot fired; prevents re-firing within the same day     LastRunDate    DATE              NULL             -- last calendar date this specific slot fired; prevents re-firing within the same day
  • hobby/development/sql/database_scheduler.1786708398.txt.gz
  • Ultima modifica: 2026/08/14 13:53
  • da mauro.cortese