COMPUTER ENGINEER

Örneklere git
Blog
HTTP / HTTPS / TLS6 dk çalışma
60/ 70

Dayanıklılık ve hata yönetimi

Uzun işler: 202, job resource ve iptal

Timeout artırmak yerine işin yaşam döngüsünü açık tasarla.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Video işleme veya CV analizi bir HTTP isteğinden uzun sürebilir. 202 yalnız isteğin kabul edildiğini bildirir; işin kesin tamamlanacağı veya sonucunun hazır olduğu anlamına gelmez. API job kaynağı üretip pending/running/succeeded/failed/cancelled gibi uygulama durumlarını ayrı taşıyabilir. Bu durumlar HTTP status yerine geçen rastgele sayılar değildir.

İstemci verilen status URL’sini ölçülü polling ile takip eder; yanıt sözleşmesine göre Retry-After gibi ipuçları kullanılabilir. Job sonucu için 200 temsil veya tamamlandıktan sonra ayrı sonuç adresi olabilir. Hata, güvenli Problem Details veya job alanında açıklanır; kişisel veriyi loga sızdırma. Job ve result kaynakları ownership/tenant denetimine tabidir.

İstek timeout oldu diye kuyruğa iş eklenmemiş sayılmaz. Idempotency ile aynı kullanıcının tekrarını güvenli ele al. İptal best-effort olabilir: işlem son commit’e ulaştıysa geri alınamayabilir. “Browser sekmesini kapattı” ile “backend işi iptal edildi” aynı şey değildir. İş kuyruğu kapasitesi, saklama süresi, retry ve yeniden başlatma davranışları operasyon sözleşmesinin parçasıdır.

NERESİNDE KULLANIRSIN?

AI analizi, video işleme ve export işlemlerinde.

SIK YAPILAN HATA

AbortController backend job’ı kesin iptal eder sanmak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

HTTP / temsili örnek
HTTP/1.1 202 Accepted
Location: /jobs/42

Uygulamanın izleme adresi; tamamlanma garantisi değil.

Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.

02 / SIRA SENDE

Önce kendin dene.

Sekme kapanınca iş otomatik durmalı mı?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
No: cancellation needs an explicit backend contract.

Hayır. İptal endpoint’i ve işçinin iptal davranışı gerekir.