Background Service ile Zamanlanmış İşler

Background Service ile Zamanlanmış İşler

Background Service ile Zamanlanmış İşler

Web uygulamalarında bazı işlemler kullanıcı isteğiyle doğrudan çalışmak zorunda değildir. Örneğin günlük rapor oluşturmak, eski logları temizlemek, e-posta kuyruğunu işlemek veya belirli aralıklarla veri senkronizasyonu yapmak arka plan görevi olarak çalıştırılabilir.

ASP.NET Core bu tür işler için BackgroundService ve IHostedService yapısını sunar. BackgroundService sınıfından türeyen bir servis, uygulama çalıştığı sürece arka planda çalışabilir. ExecuteAsync metodu içinde döngü kurularak belirli aralıklarla işlem yapılabilir.

Bu yapıda dikkat edilmesi gereken en önemli konu kaynak yönetimidir. Uzun süren işlemler cancellation token desteklemeli, hata durumları loglanmalı ve servis beklenmeyen bir exception ile durmamalıdır. Ayrıca scoped servisler kullanılacaksa IServiceScopeFactory ile yeni scope oluşturmak gerekir.

BackgroundService küçük ve orta ölçekli işler için oldukça kullanışlıdır. Ancak çok karmaşık job yönetimi, retry mekanizması, dashboard veya dağıtık çalışma gerekiyorsa Hangfire gibi araçlar daha uygun olabilir.

Doğru kullanıldığında arka plan servisleri uygulamanın kullanıcı deneyimini iyileştirir. Ağır işlemler request-response akışından ayrılır ve sistem daha kontrollü hale gelir.

0 Yorumlar

Yorum Yaz

E-posta adresiniz yayınlanmayacaktır.