El consultor de desarrolladores premier
Randy Patterson analiza los beneficios de usar el nuevo proyecto de proyecto del Servicio de trabajadores introducido en .NET Core 3.
.NET Core 3 introdujo una nueva plantilla de proyecto llamada Worker Service. Esta plantilla est谩 dise帽ada para darle un punto de partida para servicios multiplataforma. Como un caso de uso alternativo, configura un entorno muy agradable para aplicaciones de consola general que es perfecto para contenedores y microservicios.

Algunos de los beneficios de usar esta plantilla incluyen las siguientes 谩reas.

Inyecci贸n de dependencia
La plantilla de Worker Service configura un contenedor de inyecci贸n de dependencia predeterminado, listo para que lo usemos. Este es un gran beneficio en comparaci贸n con la plantilla gen茅rica de la consola.
Agregar servicios implica actualizar el m茅todo
ConfigureServices en el archivo
Program.cs :
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddTransient<ICustomerService,CustomerService>(); services.AddHostedService<Worker>(); });
Configuracion
La misma configuraci贸n de proveedores de configuraci贸n para ASP.NET Core se duplica aqu铆 para Worker Services. Esto nos brinda un entorno potente y familiar para almacenar informaci贸n de configuraci贸n:
- appsettings.json
- ajustes de aplicaciones. {Environment} .json
- Secretos de usuario (solo para desarrollo)
- Variables de entorno
- Argumentos de la l铆nea de comando
Para obtener informaci贸n adicional sobre cada uno de los proveedores, consulte mi art铆culo anterior publicado
aqu铆 .
Registro
Del mismo modo, los proveedores de registro se han configurado para que coincidan con la configuraci贸n predeterminada de ASP.Net Core, ofreci茅ndole los siguientes proveedores:
- Consola
- Depurar
- Fuente del evento
- EventLog (solo cuando se ejecuta en Windows)
Puede modificar los proveedores de registro agregando un m茅todo
ConfigureLogging al objeto
Host en
Program.cs :
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddHostedService<Worker>(); }) .ConfigureLogging(logging => { logging.ClearProviders(); logging.AddConsole(); });
Para obtener informaci贸n adicional sobre el registro, consulte la
documentaci贸n de ASP.NET Core.
Clase de inicio de trabajadores
Finalmente, el archivo
Worker.cs es donde
existir谩 la mayor parte de su c贸digo. Existen 3 m茅todos reemplazables de la clase base
BackgroundService que le permiten vincularse al ciclo de vida de su aplicaci贸n:
ExecuteAsync: un m茅todo abstracto utilizado como punto de entrada principal para su aplicaci贸n. Si este m茅todo se cierra, entonces su aplicaci贸n se cierra.
StartAsync: un m茅todo virtual que, cuando se anula, se llama cuando se inicia el servicio y se puede usar para la configuraci贸n de recursos por 煤nica vez.
StopAsync: un m茅todo virtual que se llama cuando la aplicaci贸n se est谩 cerrando y es un buen lugar para liberar recursos y deshacerse de objetos.
Resumen
La nueva plantilla de servicio para trabajadores en .NET Core 3 crea un entorno de alojamiento que es adecuado para aplicaciones de consola, microservicios, aplicaciones en contenedores y servicios en segundo plano multiplataforma. Si bien estos beneficios se pueden configurar independientemente de la plantilla, la plantilla de Worker Service nos brinda un entorno de inicio consistente entre las aplicaciones ASP.NET Core y Console.