.NET Core 3 introduit un nouveau modèle de projet appelé Worker Service. Ce modèle est conçu pour vous donner un point de départ pour la création de services multiplateformes. Comme cas d'utilisation alternatif: il fournit un très bon environnement pour créer des applications de console, ce qui est idéal pour les conteneurs et les microservices.

En savoir plus sur certains des avantages de l'utilisation de ce modèle sous le chat.

Injection de dépendance
Le modèle Worker Service configure un conteneur pour l'injection de dépendances par défaut, prêt à l'emploi. C'est un énorme avantage par rapport au modèle de console global.
L'ajout de services comprend la mise à jour de la méthode
ConfigureServices dans le fichier
Program.cs :
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddTransient<ICustomerService,CustomerService>(); services.AddHostedService<Worker>(); });
La configuration
Les mêmes paramètres de fournisseur de configuration pour ASP.NET Core sont dupliqués ici pour Worker Services. Cela nous donne un environnement puissant et familier pour stocker les informations de configuration:
- appsettings.json
- appsettings. {environnement} .json
- Secrets utilisateur (développement uniquement)
- Variables d'environnement
- Arguments de ligne de commande
Pour plus d'informations sur chacun des fournisseurs, veuillez consulter mon article précédent publié
ici .
Journalisation
De même, les fournisseurs de journaux ont été configurés conformément aux paramètres par défaut d'ASP.Net Core, vous fournissant les fournisseurs suivants:
- La console
- Déboguer
- Source de l'événement
- EventLog (uniquement sous Windows)
Vous pouvez ajouter des fournisseurs de journalisation en ajoutant la méthode
ConfigureLogging à l'objet
Host dans
Program.cs :
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddHostedService<Worker>(); }) .ConfigureLogging(logging => { logging.ClearProviders(); logging.AddConsole(); });
Consultez la
documentation ASP.NET Core pour plus d'informations.
Classe de démarrage des travailleurs
Enfin, la majeure partie de votre code existera dans le fichier
Worker.cs . Il existe 3 méthodes redéfinissables dans la classe
BackgroundService de base qui vous permettent de vous relier au cycle de vie de l'application:
ExecuteAsync est une méthode abstraite utilisée comme point d'entrée principal pour votre application. Si cette méthode est interrompue, l'application se ferme.
StartAsync - Une méthode virtuelle qui, lorsqu'elle est remplacée, est appelée au démarrage du service et peut être utilisée pour définir des ressources une seule fois.
StopAsync - Une méthode virtuelle qui est appelée lorsque l'application se ferme et est un bon endroit pour libérer des ressources et supprimer des objets.
Total
Le nouveau modèle de service de travail dans .NET Core 3 crée un environnement d'hébergement bien adapté aux applications de console, aux microservices, aux applications de conteneur et aux services d'arrière-plan multiplateforme. Bien que ces avantages puissent être personnalisés indépendamment du modèle, Worker Service fournit un environnement de lancement cohérent à utiliser avec ASP.NET Core et les applications de console.