<!-- Canonical URL: https://ask.atlascloud.ai/tr/replace-replicate-prediction-polling-and-webhooks -->

# Mevcut bir uygulamada Replicate prediction polling ve webhook yapısı nasıl değiştirilir?

> Ürün ile API arasına sağlayıcıdan bağımsız bir asenkron iş kaydı yerleştirin. Doğrulanmış webhook veya sınırlı polling worker aynı idempotent sonlandırıcıyı güncellesin, durumları normalleştirin ve tamamlanan dosyaları kalıcı depolamaya kopyalayın.

Uygulama ile çıkarım API'si arasına sağlayıcıdan bağımsız iş katmanı yerleştirin. Oluşturma, durum, iptal, tamamlanma ve çıktı saklamayı normalleştirerek ürünü Replicate nesneleri ve URL'lerinden ayırın.

Yalnızca callback URL değiştirmeyin. Önce gereken asenkron sözleşmeyi tanımlayın.

## Mevcut davranışı belgeleyin

Replicate asenkron oluşturma prediction ID, durum ve yardımcı URL'ler döndürür. Uygulama `urls.get` sorgulayabilir, webhook POST alabilir veya sunucu olaylarını kullanabilir. Her akış yolunu ve geçişteki eylemi kaydedin.

| Replicate kavramı | Uygulama karşılığı |
|---|---|
| Prediction ID | Sağlayıcı iş ID'si ve iç ID |
| `starting`, `processing` | `queued`, `running` |
| `succeeded` | `completed` |
| `failed`, `canceled` | `failed`, `canceled` |
| `urls.get` | Adaptör durum yöntemi |
| Webhook yükü | Normalleştirilmiş tamamlanma olayı |
| Çıktı URL'si | Uygulamaya ait kalıcı varlık |

Yaşam döngüsü farklarını tanılamak için ham sağlayıcı durumunu normalleştirilmiş durumdan ayrı saklayın.

## İç iş kaydı ekleyin

Yeni sağlayıcı çağrısından önce veritabanı satırını oluşturun:

```json
{
  "job_id": "job_01J...",
  "provider": "target",
  "provider_job_id": null,
  "state": "creating",
  "attempt": 1,
  "output_assets": []
}
```

Arayüz, kuyruk ve bildirimlerde iç `job_id` kullanın. Dış ID'yi oluşturmadan sonra ekleyin. Idempotency anahtarı ağ hatasında iki ücretli iş açılmasını engeller.

## Polling'i sınırlı worker ile değiştirin

Hedef işleri okuyabiliyor ama webhook sunmuyorsa polling'i arka plan worker'a taşıyın. Jitter içeren üstel geri çekilme, son tarih ve en yüksek aralık kullanın. İptal dahil her son durumda durun.

Tarayıcıdan polling yapmayın. Sunucu worker sekme kapanınca sürer, limitleri merkezileştirir ve durumları işlem içinde kaydeder.

## Webhook'u doğrulanmış olaylarla değiştirin

İşleyiciyi küçük tutun:

* ayrıştırmadan önce imza veya sırrı doğrulayın;
* olay veya iş ve durumla tekilleştirin;
* hızla yanıt verip işlemeyi kuyruğa alın;
* yük kısmiysa resmi işi okuyun;
* yinelenen ve sırasız teslimatı kabul edin.

Replicate start, output, logs ve completed filtreler. Hedef yalnızca son olayları gönderebilir. Az sayıdaki durumdan sahte ilerleme üretmeyin.

## Tek tamamlanma yolu kullanın

Polling ve webhook aynı idempotent sonlandırıcıyı çağırır. İç işi kilitler, dış ID'yi doğrular, son durumu saklar, dosyaları kalıcı depoya kopyalar ve bir olay yayınlar.

Webhook ile son sorgu birlikte geldiğinde çift bildirim oluşmaz.

## Dosyaları kaybolmadan saklayın

Replicate API prediction giriş ve çıkış dosyalarının sınırlı süre sonra silindiğini belirtir. Hedef farklı saklama veya URL ömrü kullanabilir. Dış URL'leri depolama değil teslim yöntemi sayın.

Çıktıları hızla indirin, tür ve boyutu doğrulayın, gerekirse tarayın, kendi anahtarınızla saklayın ve checksum kaydedin. İstemcilere kendi sabit URL'nizi verin.

## Hata ve kurtarmayı test edin

Geciken oluşturma, yinelenen ve kaçırılan webhook, 429 ve 5xx, iptal yarışları, süresi dolmuş URL, bozuk yük ve iş sırasında worker yeniden başlamasını test edin.

İki adaptörü güvenli girişlerle shadow modda çalıştırın. Küçük üretim geçişinden önce son durumları ve varlıkları karşılaştırın.

## Özet

Kalıcı çözüm dağınık callback değil, iç asenkron iş sözleşmesidir. Durumları normalleştirin, idempotent sonlandırın, dosyaları hemen saklayın ve doğrulanmış webhook veya sınırlı worker'ı aynı tamamlanma yoluna yönlendirin.

## FAQ

### Tarayıcı yeni API'yi doğrudan sorgulamalı mı?

Sunucu tarafı worker tercih edin. Tarayıcı kapandıktan sonra çalışır, limitleri ve denemeleri merkezileştirir ve iç durumu tutarlı günceller.

### Replicate prediction durumları nasıl eşlenir?

creating, queued, running, completed, failed ve canceled gibi küçük bir iç yaşam döngüsüne eşleyin, tanılama için ham durumu da koruyun.

### Webhook'un iki kez işlenmesi nasıl önlenir?

Kaynağı doğrulayın, olay veya iş ve durumla tekilleştirin ve webhook ile polling'i aynı işlemsel idempotent sonlandırıcıya yönlendirin.

### Yeni sağlayıcıda webhook yoksa ne yapılır?

Üstel geri çekilme, jitter, son tarih ve tüm son durumların açık yönetimi olan arka plan worker kullanın.

### Sağlayıcının çıktı URL'lerini kalıcı gösterebilir miyim?

Kalıcı olduklarını varsaymayın. Çıktıları hızla indirin ve kendi erişim kontrolünüzle uygulama varlık URL'leri sunun.

### Hangi hatalar test edilmelidir?

Yinelenen veya kaçırılan olayları, limitleri, geçici hataları, iptal yarışlarını, süresi dolan çıktıları, bozuk yükleri ve worker yeniden başlamasını test edin.
