ABP 공식 문서(46)[통합 Quartz]

2871 단어 ABP.NET 프레임
7.3 ABP 백그라운드 서비스 - 통합 Quartz
7.3.1 소개
Quartz는 기능이 완비되고 시작된 작업 스케줄링 시스템으로 소규모 응용은 대형 기업급 시스템에서 모두 사용할 수 있다.Abp.Quartz는 ABP에 간단하게 통합됩니다.
ABP에는 지구화 백그라운드 작업 대기열과 백그라운드 작업 노동자가 내장되어 있다.Quartz는 좋은 선택입니다. 백그라운드 작업자에게 높은 스케줄링이 필요하다면.물론 백그라운드 작업 대기열을 오래 유지하는 데는 Hangfire가 좋은 선택이다.
7.3.2 설치
Abp를 설치합니다.프로젝트에 Quartz를 추가하고 모듈에 AbpQuartz 모듈을 추가합니다.다음과 같습니다.
[DependsOn(typeof (AbpQuartzModule))]
public class YourModule : AbpModule
{
    //...
}

7.3.3 백그라운드 작업 작성
Quartz의 IJob 인터페이스를 실현하여 새로운 작업을 만들거나, 로그 기록과 로컬화 등 도구 속성과 방법이 있습니다.다음은 간단한 작업 클래스입니다.
public class MyLogJob : JobBase, ITransientDependency
{
    public override void Execute(IJobExecutionContext context)
    {
        Logger.Info("Executed MyLogJob :)");
    }
}

우리는 간단하게 Execute 방법을 실현하여 로그를 썼다.자세한 내용은 Quartz 설명서를 참조하십시오.
7.3.3 스케줄링 작업 작성
IQuartzScheduleJobManager 인터페이스는 스케줄링 작업을 작성하는 데 사용됩니다.클래스에 이 인터페이스를 주입하거나 모듈의 PostInitialize 방법에서 그것을 해석하고 사용할 수 있습니다.작업 스케줄링이 포함된 디렉터의 예:
public class HomeController : AbpController
{
    private readonly IQuartzScheduleJobManager _jobManager;

    public HomeController(IQuartzScheduleJobManager jobManager)
    {
        _jobManager = jobManager;
    }

    public async Task ScheduleJob()
    {
        await _jobManager.ScheduleAsync(
            job =>
            {
                job.WithIdentity("MyLogJobIdentity", "MyGroup")
                    .WithDescription("A job to simply write logs.");
            },
            trigger =>
            {
                trigger.StartNow()
                    .WithSimpleSchedule(schedule =>
                    {
                        schedule.RepeatForever()
                            .WithIntervalInSeconds(5)
                            .Build();
                    });
            });

        return Content("OK, scheduled!");
    }
}   

7.3.4 이상
Quartz에 대한 자세한 내용은 Quartz 문서를 참조하십시오.

좋은 웹페이지 즐겨찾기