MCP Academy · Ders

İptal İsteklerini Ele Alma

İstemci iptal ettiğinde işi düzgün biçimde durdurun.

2. ders / 413 adım

İptal İsteklerini Ele Alma, CoddyKit'te ücretsiz bir MCP Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, MCP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. MCP Academy kursu toplamda 4 dersten oluşur.

İptal Neden Vardır

Uzun süren bir araç çalışırken kullanıcı sohbeti kapatabilir veya fikrini değiştirebilir. MCP, boşa giden işin durması için istemcinin bir iptal göndermesine olanak tanır.

İptal Bildirimi

İstemci bunu, durdurmak istediği requestId'yi belirten bir notifications/cancelled iletisiyle bildirir. Bu, yanıt gerektirmeyen, gönderilip unutulan bir iletidir.

{"method": "notifications/cancelled",
 "params": {"requestId": 7, "reason": "user aborted"}}

Bu Yalnızca Bir İstektir

Yalnızca hâlihazırda devam eden bir istek, kendi requestId değeriyle eşleştirilerek iptal edilebilir. Kimliği olmayan bildirimler hiçbir zaman iptal edilemez.

İptal En İyi Çabayla Gerçekleşir

İptal, zorla sonlandırma değil, nazik bir istektir. İşiniz zaten tamamlanıyor olabilir; bu nedenle iptali durma yönünde bir en iyi çaba ipucu olarak değerlendirin.

Bağlantıyı asyncio Kurar

Python SDK'sında iptal, bekleyen aracınızın içinde oluşturulan bir asyncio.CancelledError olarak gelir. Genellikle bir bayrağı kendiniz yoklamanız gerekmez.

import asyncio
# CancelledError is raised at the next await point

Yukarı Doğru İletilmesine İzin Verin

En basit doğru davranış, CancelledError hatasının yukarı doğru iletilmesine izin vermektir. Çerçeve daha sonra görevi durdurur ve normal bir sonuç göndermeyi atlar.

@mcp.tool()
async def crunch(ctx: Context) -> str:
    for item in items:
        await heavy(item)  # cancel lands here

İptal Sırasında Temizleyin

Aracınız bir dosya veya kilit tutuyorsa iptal durumunda kaynakları yine serbest bırakacak şekilde sarmalayın. Bir try/finally yapısı, çıkış sırasında temizliğin çalışmasını garanti eder.

try:
    await do_work()
finally:
    handle.close()

Yutmayın

CancelledError hatasını asla yakalayıp sessizce çalışmaya devam etmeyin. Bu, iptalin amacını ortadan kaldırır ve istemcinin işin durdurulduğunu sanmasına neden olur.

# Anti-pattern:
# except asyncio.CancelledError:
#     pass  # do NOT do this

İptalden Sonra Yanıt Vermeyin

Bir istek iptal edildiğinde onun için sonuç veya hata göndermeyin. İstemci yoluna devam etmiştir ve geç gelen herhangi bir yanıt basitçe yok sayılır.

Kaynak Bütçesini Serbest Bırakın

İptale hızlıca uymak CPU'yu, ağı ve model belirteçlerini serbest bırakır. Hızla duran bir sunucu, yoğun çalışan bir aracı ortamında iyi bir yurttaştır.

Doğal Noktalarda Denetleyin

Bekleme noktası olmayan sıkı CPU döngülerinde, iptalin yinelemeler arasında gerçekleşebilmesi için kısa bir await asyncio.sleep(0) ekleyin.

for chunk in chunks:
    crunch(chunk)
    await asyncio.sleep(0)

Kısa Denetim

İptalin bir Python MCP aracında nasıl ortaya çıktığını denetleyin.

Özet: İptal

cancelled bildirimini, iptallerin neden en iyi çabayla gerçekleştiğini ve temizleme işlemini yaparken CancelledError hatasının nasıl yukarı iletileceğini gördünüz. Aferin!

Başlamak ücretsiz

Yapay zeka eğitmeniyle Python öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
30
Dersler
120

Sıkça Sorulan Sorular

“İptal İsteklerini Ele Alma” dersi ücretsiz mi?

Evet — “İptal İsteklerini Ele Alma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve MCP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. MCP Academy kursu toplamda 4 dersten oluşur.

“İptal İsteklerini Ele Alma” dersinde ne öğreneceğim?

İstemci iptal ettiğinde işi düzgün biçimde durdurun. MCP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

MCP Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te MCP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“İptal İsteklerini Ele Alma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu MCP Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her MCP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Uzun Görevlerde İlerleme Gönderme
  2. İptal İsteklerini Ele Alma
  3. İstemciye Yapılandırılmış Günlükleme
  4. Günlük Seviyelerini Çalışma Zamanında Ayarlama
← MCP Academy Sayfasına Dön