Uso de servicio de los trabajadores en .NET Core en (un servicio de función de soporte)

 

Qué es el servicio Trabajador (servicio de función auxiliar)?

.NET Core 3.0 añade una nueva plantilla de proyecto de servicio del trabajador, y se puede escribir de larga duración servicio en segundo plano, y puede ser fácilmente desplegado en ventanas de servicio o demonios Linux.

Si va a instalar vs2019 es la versión china, Servicio trabajador nombre del proyecto se convierte en un servicio de función secundaria.

métodos de interfaz IHostedService:

StartAsync (CancellationToken) - contiene la lógica para iniciar tareas en segundo plano.

StopAsync (CancellationToken) - desencadena cuando el host normalmente cerrado.

sobre BackgroundService

BackgroundService es una implementación de la clase base de la IHostedService de larga duración.

tutorial

Caso - cronometrado tareas en segundo plano

usando Microsoft.Extensions.Hosting;
usando Microsoft.Extensions.Logging;
usando System;
usando System.Threading;
usando System.Threading.Tasks; 

espacio de nombres Demo_WorkerService_0320 
{ 
    público  de clase TimedHostedService: IHostedService, IDisposable 
    { 
        privada  int executionCount = 0 ;
        privada  de sólo lectura ILogger <TimedHostedService> _logger;
        privada _timer temporizador; 

        pública TimedHostedService (ILogger <TimedHostedService> registrador) 
        {
            _logger = registrador; 
        } 

        Pública de tareas StartAsync (CancellationToken stoppingToken) 
        { 
            _logger.LogInformation ( " Timed Alojado servicio en ejecución. " ); 
            _timer = nuevo Timer (DoWork, DateTime.Now.Ticks, TimeSpan.Zero, TimeSpan.FromSeconds ( 2 ));
            volver Task.CompletedTask; 
        } 

        Privada  vacío DoWork ( objeto estado) 
        { 
            var count = Interlocked.Increment ( ref executionCount);
            _logger.LogInformation ($ " *** Índice = {count}, tarea comienzo ... *** " ); 
            Thread.Sleep ( 5 * 1000 ); 
            _logger.LogInformation ($ " *** Índice = {count}, tarea completa *** " ); 
        } 

        Pública de tareas StopAsync (CancellationToken stoppingToken) 
        { 
            _logger.LogInformation ( " Timed Alojado servicio está parando. " ); 
            _timer ? .Cambiar (Timeout.Infinite, 0 );
            volver Task.CompletedTask; 
        }

         pública  vacío Dispose () 
        { 
            _timer ? .Disponer(); 
        } 
    } 
}

Avance

material de referencia

las tareas de fondo que utilicen la implementación de servicios gestionados en ASP.NET Core en
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-3.1&tabs=visual-studio

El uso de .NET Core Trabajador de servicios, para crear un servicio de Windows o Linux demonios
https://www.cnblogs.com/OpenCoder/p/12191164.html

Supongo que te gusta

Origin www.cnblogs.com/jinzesudawei/p/12535904.html
Recomendado
Clasificación