에서 .NET 코어에서 사용 노동자 서비스 (지원 역할 서비스)

 

근무 서비스 (보조 역할 서비스) 란 무엇입니까?

.NET 코어 3.0은 새로운 프로젝트 템플릿 노동자 서비스를 추가하고, 당신은 백그라운드 서비스를 장기 실행 쓸 수있는, 쉽게 서비스 윈도우 또는 리눅스 데몬에 배포 할 수 있습니다.

당신은 중국어 버전 vs2019이다 설치하는 경우, 근무 서비스 프로젝트 이름은 보조 역할 서비스가된다.

IHostedService 인터페이스 방법 :

StartAsync은 (CancellationToken은) - 배경 작업을 시작하는 로직을 포함하고 있습니다.

StopAsync (CancellationToken은) - 호스트가 정상적으로 닫을 때 트리거.

BackgroundService 소개

BackgroundService는 장기 실행 IHostedService의 기본 클래스 구현입니다.

자습서

케이스 - 타임 백그라운드 작업

사용 Microsoft.Extensions.Hosting 단계;
사용 Microsoft.Extensions.Logging 단계;
사용하여 시스템;
사용 하여 System.Threading 단계;
사용 System.Threading.Tasks 단계; 

네임 스페이스 Demo_WorkerService_0320 
{ 
    공공  클래스 TimedHostedService : IHostedService,는 IDisposable 
    { 
        개인  INT의 executionCount = 0 ;
        전용  판독 전용 하는 ILogger <TimedHostedService> _logger;
        개인 타이머 _timer; 

        공개 TimedHostedService (ILogger입니다 <TimedHostedService> 로거) 
        {
            _logger = 로거; 
        } 

        공공 작업 StartAsync (CancellationToken stoppingToken) 
        { 
            _logger.LogInformation ( " 시간 제한이 서비스가 실행 호스트. " ); 
            _timer = 새로운 타이머 (DoWork, DateTime.Now.Ticks, TimeSpan.Zero, TimeSpan.FromSeconds ( 2 ));
            반환 Task.CompletedTask을; 
        } 

        개인  공극 DoWork ( 대상 주) 
        { 
            VAR의 개수 = Interlocked.Increment ( REF executionCount); 
            _logger.LogInformation ($ "*** 지수 = {수}, 작업 시작 ... *** " ); 
            Thread.sleep를 ( 5 * 1000 ); 
            _logger.LogInformation ($ " *** 지수 = {수}, 전체 작업 *** " ); 
        } 

        공공 작업 StopAsync (CancellationToken stoppingToken) 
        { 
            _logger.LogInformation ( " 시간 제한 서비스가 중지됩니다 호스팅. " ); 
            _timer ? .Change (Timeout.Infinite, 0 );
             반환 Task.CompletedTask; 
        } 

        공공  무효 처분 () 
        { 
            _timer ? .Dispose (); 
        } 
    } 
}

시사

참고 자료

에서 ASP.NET 코어에서 관리 서비스 구현을 사용하여 백그라운드 작업
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-3.1&tabs=visual-studio

Windows 서비스를 만들 수있는 .NET 핵심 노동자 서비스의 사용 또는 리눅스 데몬
https://www.cnblogs.com/OpenCoder/p/12191164.html

추천

출처www.cnblogs.com/jinzesudawei/p/12535904.html