İçeriğe geç

Teslimat ve yeniden denemeler

CIQRA, Content-Type: application/json; charset=utf-8 ve imzalı header’larla bir POST gönderir. Teslimatlar kalıcı olarak kuyruğa alınır ve arka plandaki bir worker tarafından, genellikle birkaç saniye içinde gönderilir.

Başarı herhangi bir 2xx durum kodu
Zaman aşımı deneme başına 15 saniye (bağlanmak için 10 sn)
Yönlendirmeler izlenir
Sıralama garanti edilmez — occurredAt ve Ciqra-Event-Id kullanın
Garanti en az bir kez — Ciqra-Event-Id üzerinden tekilleştirin

Hızlı yanıt verin: 200 ile onaylayın, işi sonra yapın. 15 saniyeden uzun süren bir handler, sonunda başarılı olsa bile başarısız olarak kaydedilir ve yeniden denenir.

Başarısız bir deneme — 2xx olmayan yanıt, zaman aşımı veya bağlantı hatası — üstel geri çekilme (exponential backoff) ile yeniden denenir, toplam 8 deneme:

Deneme Bir önceki başarısız olduktan ne kadar sonra gönderilir
1 — (hemen)
2 30 sn
3 1 dk
4 2 dk
5 4 dk
6 8 dk
7 16 dk
8 32 dk

İlk denemeden yaklaşık 64 dakika sonra, hiç başarılı olmamış bir teslimat dead-letter’a alınır ve bir daha denenmez. Tüccar başarısız teslimatları yönetim panelinde görebilir ve elle yeniden gönderebilir. Olaydan 30 gün sonra hâlâ gönderilmemiş bir teslimattan da vazgeçilir.

Ciqra-Event-Age-Seconds bir olayın size ulaştığında ne kadar eski olduğunu söyler — birkaç yeniden denemeden sonra bir saate yaklaşabilir.

Bir abonelik, teslimatlar başarısız oluyor diye asla otomatik olarak kapatılmaz. Endpoint’iniz bir saatten uzun süre kapalı kalacaksa o aralıktaki olaylar dead-letter’a düşer: geri geldiğinizde API üzerinden mutabakat yapın.