Dotnetcore ve Hangfire kullanımı
Hangfire arka planda görevlerinizi zamanlayabileceğiniz açık kaynak bir kütüphane. Bu yazıda dotnet core konsol projemize ekleyeceğiz.
İlk olarak .net core console projemizi oluşturuyor ve gerekli paketeri projemize ekliyoruz.
Projemiz de Hangfire’ın kullanacağı database’i tanımlıyoruz.
Hangfire’ın ücretsiz versiyonu 4 farklı job tanımlamamıza izin verir.
Fire-and-Forget Jobs
Fire-and-Forget joblar oluşturulduktan sonra bir kereliğine çalışır.
Recurring Jobs
Recurring joblar belirli bir zaman aralığında tekrarlanan işlemler de kullanılır.
Delayed Jobs
Belirli bir tarihte veya birkaç gün,dakika, saniye vb birimler sonra çalışmasını iztediğiniz görevler için kullanılır.
Continuations
Parent olarak tanımlanan job bittikten sonra çalışmasını istediğiniz devam olarak çalışacak joblar için kullanılır.
Recurring joblar Func<string> tipinde parametre aldıkları için Cron yardımcı sınıfı sayesinde Daily,Monthly gibi methodlar seçilebilir. Eğer Cron.Daily merhoduna parametre verilmez ise UTC zamana göre 00:00 da ilgili joba atanmış görevi çalıştırır.
Delayed joblar parametre olarak TimeSpan tipinde yada DateTimeOffset tipinde veri alırlar. TimeSpan ile belirli bir saniye,dakika veya güden geri sayım yaptırırken DateTimeOffset spesifik bir tarihte jobı çalıştırmamızı sağlar. Buradan DateTimeOffset hakkında daha fazla bilgi alabilirsiniz.
Proje github linki:
Yararlanılan kaynaklar: