Skip to content

Quartz.NET ile Scheduler yapısının oluşturulması , izlenmesi ve veritabanı etkileşimleri.Quartz.NET AdoNetJobStore with Castle Windsor and MVC UI.

License

Notifications You must be signed in to change notification settings

mfarkan/Quartz.NET-MSSQL-With-Castle-Windsor

Repository files navigation

Quartz.NET-3.0.3-MSSQL-With Castle Windsor

Quartz.NET scheduler kütüphanesi kullanılarak oluşturulan jobların yönetimi ve bu jobların izlenmesi için ise Sql Server Veritabanı kullanılmıştır.Bunun yanında uygulama içerisinde Quartz.NET'in desteklediği JobFactory ve JobLogger yapılarını da içinde barındırırken bunlarla birlikte yer alan Castle Windsor kullanımıyla bağımlılıklar yönetilmeye çalışılmıştır.

Quartz.NET Nedir?

Quartz.NET öncelikle java dili için çıkartılmış daha sonrasında .NET çatısı içinde geliştirilen , zamana dayalı görevler(job) tanımlayabildiğimiz open source bir kütüphanedir.

Resmi sitesi aracılığıyla dökümantasyonuna bakabilirsiniz.

Geliştirilen uygulama aşağıda bahsedilen istekleri kapsamaktadır ;

  • Scheduler'ı console uygulaması olarak oluşturup multiple application server'da çalışacak şekilde düzenlendi.
  • Scheduler içerisinde JobFactory yer aldığı için Castle Windsor ile entegre edildi.
  • Quartz.NET içerisinde Log yapısı mevcut fakat Log4Net entegre edilebilir.
  • Uygulama içerisinde tanımlanan joblar Sql Server veritabanına kaydedildi.
  • Ayrıca uygulama içerisinde tanımlanan jobların Asp.NET MVC uygulaması sayesinde görsel olarak da izlendi ve tetiklenmesi , silinmesi sağlandı.
  • Uygulama içerisinde tanımlanan Joblar (IJob kalıtım alanlar) dinamik olarak eklenir ve JobDescriptionAttribute ile açıklaması ve Cron zamanı belirlenir.

Uygulamanın Web Arayüzü

JobDescriptionAttribute

Bu attribute sayesinde job cron zamanı ve job açıklamasını girdiğiniz de job Quartz içerisine ve veritabanına kayıt edilir , eğer bu attribute set edilmez ise herhangi bir kayıt işlemi olmaz.

Örnek kayıt aşağıda ki şekildedir ;

YapıKredi Job'ı için 10 dakika da bir çalışması söylenmiştir.

[JobDescription("YapıKrediJob", "0 */10 * ? * *")]
public class YapiKrediJob : IYapiKrediJob
{
    public async Task Execute(IJobExecutionContext context)
    {
        await Console.Out.WriteLineAsync("Greetings from " + context.JobDetail.Key.Name + "! " + DateTime.Now.ToLongTimeString() + " ");
    }

Uygulama içerisindeki classlar

  • Bootstrapper: Container oluşturur ve installerları container'a atar.
  • JobRegistrar: IJob interface'den kalıtım alan tüm jobları aynı container atar.
  • QuartzInitializer: Quartz.NET için joblarının tanımlandığı ve attribute tanımlı olan classları Job'lara dahil eder.
  • WindsorJobFactory:Quartz.NET içerisinde tanımlı olan jobların instancelarının oluşturulması için container'dan ilgili job nesnesini resolve eder.

P.S : The English version of this file will be come soon.

About

Quartz.NET ile Scheduler yapısının oluşturulması , izlenmesi ve veritabanı etkileşimleri.Quartz.NET AdoNetJobStore with Castle Windsor and MVC UI.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages