Démystifier le nouveau service de travail .NET Core 3

Le consultant principal en développement, Randy Patterson, discute des avantages de l'utilisation du nouveau projet de projet Worker Service introduit dans .NET Core 3.

.NET Core 3 a 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 les services multiplateformes. Comme cas d'utilisation alternatif, il met en place un environnement très agréable pour les applications de console générales, parfait pour les conteneurs et les microservices.



Certains des avantages de l'utilisation de ce modèle incluent les domaines suivants.



Injection de dépendance


Le modèle Worker Service configure un conteneur d'injection de dépendances par défaut, prêt à être utilisé. C'est un énorme avantage par rapport au modèle de console générique.

L'ajout de services implique 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


La même configuration des fournisseurs de configuration pour ASP.NET Core est dupliquée ici pour Worker Services. Cela nous donne un environnement puissant et familier pour stocker les informations de configuration:

  1. appsettings.json
  2. appsettings. {Environment} .json
  3. Secrets utilisateur (pour le développement uniquement)
  4. Variables d'environnement
  5. 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 journalisation ont été configurés pour correspondre à la configuration par défaut pour ASP.Net Core, vous offrant les fournisseurs suivants:

  1. La console
  2. Déboguer
  3. Source de l'événement
  4. EventLog (uniquement lors de l'exécution sous Windows)

Vous pouvez modifier les fournisseurs de journalisation en ajoutant une méthode ConfigureLogging à l'objet Host dans Program.cs :

 Host.CreateDefaultBuilder(args)  .ConfigureServices((hostContext, services) =>  {      services.AddHostedService<Worker>();  })  .ConfigureLogging(logging =>  {      logging.ClearProviders();      logging.AddConsole();  }); 

Pour plus d'informations sur la journalisation, consultez la documentation d'ASP.NET Core.

Classe de démarrage des travailleurs


Enfin, le fichier Worker.cs est l'endroit où la majeure partie de votre code existera. Il existe 3 méthodes remplaçables de la classe de base BackgroundService qui vous permettent de vous lier au cycle de vie de votre application:

ExecuteAsync - une méthode abstraite utilisée comme point d'entrée principal pour votre application. Si cette méthode se termine, votre application s'arrête.

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 une configuration unique des ressources.

StopAsync - Une méthode virtuelle qui est appelée lorsque l'application s'arrête et qui est un bon endroit pour libérer des ressources et éliminer des objets.

Résumé


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 conteneurisées et aux services d'arrière-plan multiplateforme. Bien que ces avantages puissent être configurés indépendamment du modèle, le modèle Worker Service nous offre un environnement de démarrage cohérent entre les applications ASP.NET Core et Console.

Source: https://habr.com/ru/post/fr480048/


All Articles