1. nuget package 설치
Quartz
Quartz.Extensions.Hosting
2. Test Job 생성
// TestJob.cs
using Quartz;
namespace Test.WorkerService;
public class TestJob : IJob
{
public async Task Execute(IJobExecutionContext context)
{
Console.WriteLine("Welcome to .net 8.0");
}
}
3. 잡, 트리거 등록
// Program.cs
using Test.WorkerService;
using Quartz;
var builder = Host.CreateDefaultBuilder()
.ConfigureServices((ctx, services) =>
{
services.AddQuartz(q =>
{
q.UseMicrosoftDependencyInjectionJobFactory();
});
services.AddQuartzHostedService(opt => opt.WaitForJobsToComplete = true);
}).Build();
//스케쥴러 생성
var schedulerFactory = builder.Services
.GetRequiredService<ISchedulerFactory>();
var scheduler = await schedulerFactory.GetScheduler();
//작업 생성
var job = JobBuilder.Create<TestJob>()
.WithIdentity("TestJob")
.Build();
//트리거 생성
var trigger = TriggerBuilder.Create()
.ForJob("TestJob")
.WithIdentity("TestJob-Trigger")
.WithCronSchedule("0/10 * * * * ?") //10초에 한번씩 실행
.Build();
await scheduler.ScheduleJob(job, trigger);
await builder.RunAsync();
'C#' 카테고리의 다른 글
| Serilog 로그 설정 (0) | 2024.05.19 |
|---|---|
| [WorkerService] 윈도우 서비스 등록하기 (0) | 2024.04.22 |
| C# Supersocket (0) | 2023.08.14 |
| C# 기본 이론 정리 (0) | 2023.01.11 |