.NET Core 3 führt eine neue Projektvorlage mit dem Namen Worker Service ein. Diese Vorlage soll Ihnen einen Ausgangspunkt für die Erstellung plattformübergreifender Dienste bieten. Als alternativer Anwendungsfall: Es bietet eine sehr gute Umgebung für die Erstellung von Konsolenanwendungen, die sich ideal für Container und Mikrodienste eignet.

Lesen Sie mehr über die Vorteile dieser Vorlage unter der Katze.

Abhängigkeitsinjektion
Die Worker-Service-Vorlage richtet standardmäßig einen Container für die Abhängigkeitsinjektion ein, der einsatzbereit ist. Dies ist ein großer Vorteil gegenüber der gesamten Konsolenvorlage.
Das Hinzufügen von Diensten umfasst das Aktualisieren der
ConfigureServices- Methode in der Datei
Program.cs :
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddTransient<ICustomerService,CustomerService>(); services.AddHostedService<Worker>(); });
Konfiguration
Dieselben Einstellungen des Konfigurationsanbieters für ASP.NET Core werden hier für Worker Services dupliziert. Dies gibt uns eine leistungsstarke und vertraute Umgebung zum Speichern von Konfigurationsinformationen:
- appsettings.json
- appsettings. {environment} .json
- User Secrets (nur Entwicklung)
- Umgebungsvariablen
- Befehlszeilenargumente
Weitere Informationen zu den einzelnen Anbietern finden Sie in meinem vorherigen Artikel, der
hier veröffentlicht wurde .
Protokollierung
In ähnlicher Weise wurden die Protokollanbieter gemäß den Standardeinstellungen für ASP.Net Core konfiguriert und bieten Ihnen die folgenden Anbieter:
- Konsole
- Debuggen
- Ereignisquelle
- EventLog (nur unter Windows)
Sie können Protokollanbieter hinzufügen, indem Sie die
ConfigureLogging- Methode zum
Host- Objekt in
Program.cs hinzufügen:
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddHostedService<Worker>(); }) .ConfigureLogging(logging => { logging.ClearProviders(); logging.AddConsole(); });
Weitere Informationen finden Sie in der
Dokumentation zu ASP.NET Core.
Worker Startup Class
Schließlich ist der Großteil Ihres Codes in der Datei
Worker.cs vorhanden . In der Basis-
BackgroundService- Klasse gibt es drei umdefinierbare Methoden, mit denen Sie sich auf den Anwendungslebenszyklus beziehen können:
ExecuteAsync ist eine abstrakte Methode, die als Haupteinstiegspunkt für Ihre Anwendung verwendet wird. Wenn diese Methode unterbrochen wird, wird die Anwendung geschlossen.
StartAsync - Eine virtuelle Methode, die beim Start des Dienstes überschrieben wird und zum einmaligen Festlegen von Ressourcen verwendet werden kann.
StopAsync - Eine virtuelle Methode, die beim Schließen der Anwendung aufgerufen wird. Sie ist ein guter Ort, um Ressourcen freizugeben und Objekte zu entfernen.
Total
Mit der neuen Worker Service-Vorlage in .NET Core 3 wird eine Hosting-Umgebung erstellt, die sich gut für Konsolenanwendungen, Microservices, Containeranwendungen und plattformübergreifende Hintergrunddienste eignet. Obwohl diese Vorteile unabhängig von der Vorlage angepasst werden können, bietet Worker Service eine konsistente Startumgebung für die Verwendung mit ASP.NET Core- und Konsolenanwendungen.