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.
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.
AI analizi, video işleme ve export işlemlerinde.
AbortController backend job’ı kesin iptal eder sanmak.
Aynı konu. Üç farklı derinlik.
HTTP/1.1 202 Accepted
Location: /jobs/42Uygulamanı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.
Önce kendin dene.
Sekme kapanınca iş otomatik durmalı mı?
Çözümü ve açıklamasını göster
No: cancellation needs an explicit backend contract.Hayır. İptal endpoint’i ve işçinin iptal davranışı gerekir.