BWorkerServiceModel
Scopo
BWorkerServiceModel è il template per servizi Windows basati su .NET Worker Service. Integra host, dependency injection, configurazione B-Arts, logging, database opzionale, esecuzione periodica e gestione dell'arresto.
Struttura
BWorkerServiceModel/
|-- BBaseClasses/
| |-- BAppSetting.cs
| |-- BBatch.cs
| |-- BLog.cs
| `-- BWorkerHostedService.cs
|-- BPartialClasses/
| |-- BAppSetting.cs
| `-- BLog.cs
|-- BServiceModel.cs
|-- Program.cs
|-- Setup/
| |-- BInstall.bat
| `-- BDisinstall.bat
`-- Documentations/
Ciclo di esecuzione
ProgramcaricaBAppSetting.Costruisce
BLogTracerConfig.Configura
HosteUseWindowsService.Registra setting, log e
BWorkerHostedServicenella dependency injection.BWorkerHostedServicecreaBServiceModel.StartAsyncchiamaStartWorkerAsync().BBaseWorkerServicerichiama periodicamenteElaborationAsyncusando il timer configurato.StopAsyncchiamaStopWorker().
BServiceModel
Deriva da BBaseWorkerService. I punti applicativi sono:
GetTimer(): restituisceTimerElaboration;CheckBConfig(): valida configurazione e connessione;ElaborationAsync(CancellationToken): contiene il lavoro periodico;WriteLog: coordina log B-Arts e log .NET.
ElaborationAsync deve rispettare il CancellationToken: passarlo alle operazioni asincrone e interrompere ordinatamente il lavoro quando richiesto.
Configurazione
BAppSetting contiene database, log, e-mail, libreria locale e TimerElaboration. Il timer è espresso in millisecondi.
I valori reali devono provenire da BAppSettings.config o da un sistema di configurazione sicuro. Il servizio non deve riscrivere a ogni avvio i valori caricati con impostazioni di debug.
Logging
Il modello può scrivere tramite:
BLogeBLogTracerConfig;file eventi/errori;
Windows Event Log;
database;
e-mail;
provider
ILogger.NET.
Usare il wrapper di BServiceModel per mantenere allineati log B-Arts e provider .NET.
Installazione come servizio Windows
Prima dell'installazione configurare negli script:
SERVICE_NAME;SERVICE_PATHcon il percorso assoluto dell'eseguibile pubblicato;SERVICE_DESC.
Gli script devono essere eseguiti con privilegi amministrativi. BInstall.bat crea e avvia il servizio; BDisinstall.bat lo arresta e lo elimina.
