SEPETTEKİ ÜRÜNLERİM
2 Ürün
İstanbul Eğitim Akademi Logo
Eğitimler

CancellatIonToken Neden Önemlidir?

.Net uygulamalarımız ile WebApi metotları yazabiliyoruz. Bu WebApi metotları istek esnasında çalıştığı gibi, istek iptal olduğunda da istersek basit bir kod ile isteği durdurabiliyoruz.

Normalde dışarıdan gelen bir api isteği, istek yapılan taraf iptal işlemini yapsa bile iptal olmaz. Yani metot çalışır ve dönmesi gereken sonucu karşılayan bir yer olmasa bile döner.

Daha reel bir örnekle ifade edecek olursak:

GetAll adında bir API metodumuz olsun. Bu metoda dışarıdan yapılan bir istek ile bize bir liste dönüyor ve bu listede 1 milyon kayıt olduğunu düşünelim. GetAll metodunu tetikleyecek bir buton var diyelim. Son kullanıcı gelip bu butona bastığında API listeyi çekmeye başlar. Tam bu esnada işlemden vazgeçen son kullanıcı sayfayı kapatır ya da değiştirirse normalde işlem iptal oldu zanneder. Ancak işlem arka planda devam eder. API 1 milyonluk listeyi hazırlar ve karşılayan olmasa bile gönderir.

İşte bu tarz durumlarda biz eğer API isteğinin bağlantısı kesilmişse metodu da durdurmak isteriz. Peki bunu .Net ile nasıl yapabiliriz? Çok kolay, API isteklerinde parametre olarak CancellationToken almamız yeterli. Bunu EntityFramework metotlarına verdiğimiz zaman otomatik olarak iptal anında istek durur ve exception fırlatır. Bu hata olarak değil, işlemin iptal edildiğine yönelik bir hamle olarak gerçekleşir.

Birçok EF metodunda parametre olarak CancellationToken istenir. Eğer vermezseniz, default değer kabul edilir ve iptal esnasında işlem yapılmaz.

Örneğin: _context.Set<User>().GetAll(cancellationToken);

gibi.

Metotlarda ise:

public IActionResult GetAll(CancellationToken cancellationToken);

Bu metodu çağıran kişi bu parametreyi kendi göndermez. Context yapısı tarafından otomatik olarak algılanır.

Okuduğunuz için teşekkürler.


Taner SAYDAM

İstanbul Eğitim Akademi

Full Stack Yazılım Eğitmeni