Quartz.Net kullanarak .Net Core projelerinde zamanlanmış görevler yapmak

Eğer geliştirdiğiniz .Net Core projelerinde zamanlanmış görevler çalıştırmaya ihtiyaç duyarsanız, Quartz.Net kütüphanesinden faydalanabilirsiniz.

Bu makalede Quartz.Net kütüphanesini .Net Core ile geliştireceğimiz bir Console uygulamasında kullanacağız.

Hemen Visual Studio 2017 açalım ve yeni bir Console App (.Net Core) projesi oluşturalım;

Şimdi projenin Dependencies kısmına sağ tuşla tıklayıp Manage Nuget Packages… menüsünü seçelim, açılan pencerede Quartz paketini aratalım ve projeye ekleyelim. (Ben bu yazıyı yazarken v3.0.0-alpha2 .Net Core destekliyordu)

Program.cs dosyasını açalım ve Main() methodu içerisini aşağıdaki gibi değiştirelim;

InitializeJob() methodu içerisinde öncelikle StdSchedulerFactory sınıfından yeni bir instance çıkartıp, GetScheduler() methodunu çağırıyor, IScheduler interface‘inde yeralan Start() methodu ile başlatıyoruz.

JobBuilder sınıfının önce Create() methodunu, sonra Build() methodunu çağırıyoruz.

TriggerBuilder sınıfının da önce Create() methodunu, sonra StartNow() methodunu çağırarak hemen çalıştırmaya başlayacağımızı, WithCronSchedule() mthodunu çağırarak hangi periyotta çalıştırmak istediğimizi belirtiyoruz, en sonunda Build() methodunu çağırmayı unutmuyoruz.

WithCronSchedule() methoduna parametre verebileceğimiz değerler için CronExpressionGenerator sayfasını kullanabiliriz.

Ben bu makalede * * * ? * * ile her saniye tetiklenecek bir zamanlayıcı görev tanımladım.

IScheduler interface’inin ScheduleJob() methodu ile Job ve Trigger aracılığı ile zamanlanmış görevi başlatıyoruz.

Son olarak projeye aşağıdaki sınıfı da ekleyelim;

Uygulamayı çalıştırdığımızda aşağıdaki gibi bir çıktı almamız lazım;

blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı