Quartz.Net ile Zamanlanmış Görev

Zamanlanmış Görev

Merhaba arkadaşlar bu yazımızda Zamanlanmış görevleri uygulamalarımızda nasıl ekleyeceğimizi öğreneceğiz. Bunun için Quartz.Net kütüphanesini kullanacağız. İlk olarak Nuget üzerinden kütüphaneyi projemize dahil ediyoruz. Ben projemde 3.0.4 sürümünü kullandım. Bu kütüphane 3.x sürümleriyle birlikte asenkron çalışabilen bir yapıya geçmiş durumda.

Jobs ve Trigger

Kütüphanede iki önemli sınıf bulunmaktadır. Bunlar Jobs ve Trigger sınıfları. Jobs sınıfı ile zamanlayacağımız görevleri ve Trigger sınıfı ile de bu görevlerin belirlediğimiz zamanlarda tetiklenmesi işlemini gerçekleştiriyoruz. Şimdi kodlarımızı yazalım.

İlk olarak görevimizi yazıyoruz. Burada IJob interface’ini sınıfımıza referans veriyoruz. Ve interface içerisinde bulunan Execute metodu içerisine çalışacak olan metodumuzu asenkron olarak tanımlıyoruz.

Sonrasında JobScheduler metodu içerisinde görevimizi entegre ediyoruz ve çalışacak trigger’ımızı yazıyoruz. Burada ben ilk görevi çalıştırdan sonra 24 saat arayla çalışacak bir trigger yazdım. Bu konuda Quartz.Net ile daha gelişmiş trigger’lar yazmanız mümkün. Örneğin her ayın 1. günü çalışsın ama haftasonuna denk gelen günlerde çalışmasın şeklinde bir trigger yazabilirsiniz. Bunun için Quartz.Net’in sitesinde bulunan dökümanı inceleyebilirsiniz.

Ve son olarak’ta zamanlayıcımızı main metodu içerisinde çalıştırıyoruz ve program çalıştığı süre boyunca her 24 saatte bir kodumuz tekrardan çalışacaktır.

Eğer bir web projesi geliştiriyorsak Main metodunda tanımladığımız JobScheduler.Start().GetAwaiter().GetResult(); işlemini Global.asax sınıfımızda application_start metodu içerisinde yazmamız yeterli olacaktır.

Bu yazımı beğendiyseniz eğer Asp.Net Mvc ve Oracle Bağlantısını anlatan şu yazımı inceleyebilirsiniz.

Herkese iyi çalışmalar dilerim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir