Merhaba arkadaşlar, bu yazımda sizlere Quartz.Net Nedir? konusundan bahsedeceğim.
Uygulamalarımızı geliştirirken belli zamanlarda arka planda çalışmasını istediğimiz işlemler olabilir. Quartz.Net bizim için kolay bir şekilde uygulayabileceğimiz açık kaynak bir kütüphanedir. Quartz.Net paketini uygulamamıza yüklediğimizde ve ayarlarını belirlediğimizde belirlediğimiz işlemlerin çalışmasını sağlar.
Quartz özet olarak zamana dayalı planlı görevler çalıştırmamızı sağlar.
Örnek bir uygulama ile işlemlerimizi sağlayalım.
.Net Core 6 ile bir Console projesi oluşturuyoruz.
Projemizi oluşturduktan sonra Quartz paketini Nuget Package Manager üzerinden yüklüyoruz.
Quartz Paketi : Quartz.Net
Projemize Quartz paketini ekledikten sonra SimpleJob isminde bir sınıf ekliyoruz ve içerisine aşağıdaki gibi kodlarımızı yazıyoruz. SimpleJob sınıfımız IJob‘dan miras almalı ve Execute metodu eklendiğinde içerisinde yazdığımız iş akışı ne ise o işlemleri gerçekleştirecektir.
public class SimpleJob : IJob
{
public Task Execute(IJobExecutionContext context)
{
Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss")} - Hello World.");
return Task.CompletedTask;
}
}
Bu işlemi yaptıktan sonra Program.cs dosyamızda da aşağıdaki komutlarımızı ekliyoruz.
var _scheduler = await new StdSchedulerFactory().GetScheduler();
await _scheduler.Start();
var simpleJob = JobBuilder.Create<SimpleJob>()
.WithIdentity("SimpleJob")
.Build();
var simpleJobTrigger = TriggerBuilder.Create()
.WithIdentity("SimpleJob")
.StartNow()
.WithSimpleSchedule(builder => builder.WithIntervalInSeconds(5)
.RepeatForever())
.Build();
var result = await _scheduler.ScheduleJob(simpleJob, simpleJobTrigger);
Quartz paketini kullanarak bir adet Job oluşturma işlemini gerçekleştirdik ve bu Job için bir Trigger oluşturduk. WithSimpleSchedule metodu içerisinde de Job’ın ne kadar aralıkla çalışacağını belirliyoruz. Burada 5 saniyede bir bu Job’ı çalıştırmasını belirtmiş olduk. Programımız çalıştıktan sonra her 5 saniyede bir SimpleJob içerisinde yazdığımız Hello World yazısını Console üzerine yazdıracaktır.
Quartz ile ilgili detaylı bilgi için sitesi üzerinden dokümanı inceleyebilirsiniz.
Umarım faydalı olur.
Bir sonraki yazıda görüşmek üzere…