Giriş
Arka plan işlemleri, günümüzde birçok uygulamanın vazgeçilmezi haline gelmiştir. Özellikle büyük ölçekli uygulamalarda, bazı işlemlerin arka planda yürütülmesi hem performans hem de kullanıcı deneyimi açısından oldukça önemlidir. .Net Core, bu konuda geliştiricilere Worker Services adı verilen bir özellik sunuyor. Bu yazıda, .Net Core'de Worker Services ile arka plan işlemlerinin nasıl gerçekleştirildiği ele alınacaktır.
Worker Services Nedir?
Worker Services, .Net Core'de arka plan işlemlerini yürütmek için tasarlanmış bir özelliktir. Bu özellik, geliştiricilere arka plan işlemlerini kolayca yönetebilmeleri için bir dizi herramienta sağlar. Worker Services, temel olarak uzun süren işlemleri arka planda yürütmek için kullanılır. Örneğin, bir web uygulamasında büyük bir veritabanı sorgusu çalıştırmanız gerekiyorsa, bu işlemin arka planda yürütülmesi daha uygun olabilir.
Worker Services, HostedService sınıfından türetilen sınıflar aracılığıyla kullanılır. Bu sınıflar, arka plan işlemlerini gerçekleştirir ve bunları yönetmek için gerekli olan metotları sağlar. Örneğin, StartAsync ve StopAsync metotları, arka plan işleminin başlangıcını ve sonlandırılmasını yönetmek için kullanılır.
Worker Services ile Arka Plan İşlemleri
Worker Services ile arka plan işlemlerini gerçekleştirmek oldukça basittir. İlk olarak, bir Worker Service sınıfı oluşturulur ve bu sınıf HostedService sınıfından türetilir. Daha sonra, StartAsync ve StopAsync metotları override edilir ve arka plan işlemleri bu metotlar içerisinde gerçekleştirilir.
Örneğin, aşağıdaki kod örneğinde bir Worker Service sınıfı oluşturulmuştur. Bu sınıf, arka planda her 10 saniyede bir "Arka plan işlemleri çalışıyor..." mesajını yazdırır.
public class MyWorkerService : IHostedService, IDisposable { private readonly ILogger _logger; private Timer _timer; public MyWorkerService(ILogger<MyWorkerService> logger) { _logger = logger; } public Task StartAsync(CancellationToken cancellationToken) { _logger.LogInformation("Arka plan işlemleri başladı..."); _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMilliseconds(10000)); return Task.CompletedTask; } private void DoWork(object state) { _logger.LogInformation("Arka plan işlemleri çalışıyor..."); } public Task StopAsync(CancellationToken cancellationToken) { _logger.LogInformation("Arka plan işlemleri durduruldu..."); _timer?.Change(Timeout.Infinite, 0); return Task.CompletedTask; } public void Dispose() { _timer?.Dispose(); } }
Sonuç
Worker Services, .Net Core'de arka plan işlemlerini yönetmek için oldukça güçlü bir özelliktir. Bu özellik, geliştiricilere arka plan işlemlerini kolayca yönetebilmeleri için bir dizi herramienta sağlar. Bu yazıda, Worker Services ile arka plan işlemlerinin nasıl gerçekleştirileceği ele alınmıştır.
Kaynaklar
Microsoft .Net Core Resmi Dokümantasyonu: https://docs.microsoft.com/tr-tr/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-6.0
Microsoft Learn: https://learn.microsoft.com/tr-tr/training/modules/aspnet-core-hosted-services/
Yazar: Mahmut Sarıkaya — sarikayadev.com

.jpeg&w=320&q=50)
