ASP.NET Zamanlanmış Görev Tanımlama Quartz.NET Kullanımı

ASP.NET Zamanlanmış Görev Tanımlama Quartz.NET Kullanımı

 24.12.2015 09:59:44  Asp.NET  (0)

Merhaba arkadaşlar, Bu yazımda sizlere Quartz.NET'in nimetlerinden bahsedeceğim

Bildiğiniz gibi ASP.NET ile arka plan çalışan bir kod yazmak çok güç yada Console App yazmamız gerekli yada bir windows servis yazarak istemcisiz şekilde kodlarımızı istemiz zaman aralığından çalıştırıp kapatabiliriz bunu servis yazmadan yapan bir kütüphane olan

Quartz.NET ile sizlere nasıl görev tanımlanır nasıl iş tanımı yapılır ve zamanlanır onları gösterceğim. Projenin sayfası : http://www.quartz-scheduler.net/ Projeyi indirdikten sonra

Quartz.dll ve Common.logging.dll isimli dllleri projemize dahil ediyoruz add reference ile ondan sonra using satirina aşağıdakileri ekliyoruz


using Quartz;
using Quartz.Impl;
using Common.Logging;


ardından Quartz.net'in kütüphanelerini tek tek aşağıdaki gibi yazıyoruz


    static  ISchedulerFactory schedfabrikayeni;
    static IScheduler schedyeni;
    static JobDetail detayyeni;
    static CronTrigger trigeryeni;


public void baslat()
{
        schedfabrikayeni = new StdSchedulerFactory();
        schedyeni = schedfabrikayeni.GetScheduler();
        schedfabrikayeni = new StdSchedulerFactory();
        schedyeni = schedfabrikayeni.GetScheduler();
        detayyeni = new JobDetail(“jopisherdefa”,”grupherdefayapilanis”,typeof(HerSaatBasi));
        string cronExpressiontxt = string.Empty;
        cronExpressiontxt = “0 0/30 * * * ?”;//30 dakikada bir çalisir Expression burada
        trigeryeni = new CronTrigger(“triger1″, “grupherdefayapilanis”, “jopisherdefa”,      “grupherdefayapilanis”, cronExpressiontxt);
        schedyeni.ScheduleJob(detayyeni, trigeryeni);
schedyeni.Start(); //VE QUARTZ I BASLATIYORUZ !!!!!!!


}
public void durdur()
{
schedyeni.PauseJob(“jopisherdefa”, “grupherdefayapilanis”);
        schedyeni.DeleteJob(“jopisherdefa”, “grupherdefayapilanis”);
        schedyeni.Shutdown(false);
        //isin tanimi ile beraber nesneler temizlendi…
        schedyeni = null;
}


//çalisacak olan class imin ismi hersaatbasi asp.net uygulamamin içinde  //app_code un içinde mevcut tabi siz console uygulamasi olarakta deneyebilirsiniz.
//isimiz burada bitmedi hersaatbasi sinifinin içiden hangi fonksiyonumuz //çalisacak
//öncelikle çalisacak olan classimizda
//çalışacak olan sınıfımız IJop interface inden miras alıyor ve….

using Quartz;
using Quartz.Impl;
using Common.Logging;
///quartz in kütüphanelerini ekliyorum


public class HerSaatBasiMail:IJob
{
public HerSaatBasiMail()
{
//
// TODO: Add constructor logic here
//
}
    #region IJob Members
    public void Execute(JobExecutionContext context)
    {
     // buraya ne yazarsam 30 dakika da bir çalisacaktir….
    }
    #endregion
}


Expressionu istediginiz gibi degistirebiliriz

“0 30 10-13 ? * WED,FRI”10:30, 11:30, 12:30, ve 13:30, her çarsamba ve cuma saatlari arasinda çalisir

“0 0/30 8-9 5,20 * ?” her ayin 5 i ve 20 si arasinda  8:00, 8:30, 9:00 ve 9:30 saatlerinde çalisacaktir

umarım faydalı bir makale olmuştur.

Quartz.NET kullanımı hakkında daha detaylı bilgiler kendi sitesi olan http://www.quartz-scheduler.net/

sitesinde bulabilirsiniz.

 

Makale için Özgür DEMIREL arkadaşıma teşekkür ederim.

 Etiketler:

 Yorumlar

Yorum Gönder 

 Facebook Profil