Yeniden deneme nedir?
Kısa tanım
Yeniden deneme, bir istek ya da işlem geçici bir nedenle başarısız olduğunda sistemin aynı işlemi otomatik olarak belirli aralıklarla tekrar çalıştırmasıdır.
Son güncelleme:
Yeniden deneme nedir, her hata için neden işe yaramaz?
Ağ bağlantısı bir an kopar, karşı sistem kısa süre meşgul olur, istek zaman aşımına uğrar. Bu tür geçici hatalarda aynı isteği biraz sonra tekrar göndermek çoğu zaman işi çözer. Yanlış parola ya da eksik zorunlu alan gibi kalıcı hatalarda ise tekrar denemek yalnızca aynı hatayı üretir. Bu yüzden sistem önce hatanın geçici olup olmadığına bakmalıdır. AWS'nin zaman aşımı, yeniden deneme ve geri çekilme yazısı bu konuyu ayrıntılı işler: Timeouts, retries, and backoff with jitter (yeni sekmede açılır).
Yeniden deneme stratejisi nasıl kurulur?
Yeniden deneme stratejisi dört soruya yanıt verir: hangi hatalarda denenecek, kaç kez denenecek, denemeler arasında ne kadar beklenecek ve sonunda ne yapılacak. Basit bir kurgu şöyle işler.
- Yalnızca geçici hatalarda tekrar dene.
- Deneme sayısını sınırla.
- Denemeler arasında bekleme süresini artır.
- Sonunda başarısızsa hata kuyruğuna al ve bildir.
Exponential backoff nedir?
Exponential backoff, her başarısız denemeden sonra bekleme süresini katlayarak artırmaktır: önce kısa, sonra giderek uzun beklenir. Böylece zaten zorlanan karşı sisteme ardı ardına istek yağdırılmaz. Çok sayıda istemci aynı anda yeniden denerse yük yine toplanır; bekleme süresine küçük bir rastgelelik eklemek bunu dağıtır.
Yeniden deneme ne zaman zararlı olur?
Karşı sistem zaten aşırı yüklüyse yoğun yeniden denemeler yükü artırır ve toparlanmayı geciktirir. Sınır aşıldığı için reddedilen isteği hemen tekrarlamak da sonuç vermez. Karşı sistem bekleme süresi bildirdiyse ona uyun. Deneme sayısını ve toplam süreyi mutlaka sınırlayın.
Yeniden denemeler nasıl izlenir?
Her denemeyi, hata nedenini ve sonucu kaydedin. Yeniden deneme oranı bir anda arttıysa karşı sistemde ya da bağlantıda bir sorun başlamış olabilir. Hata kuyruğundaki kayıt sayısını günlük kontrol edin.
Yeniden deneme kurallarını yazılı tutmak, ekip değiştiğinde de aynı davranışın sürmesini sağlar. Her entegrasyon için kaç kez, hangi aralıkla denendiğini bir tabloya not edin.
Yeniden denerken çift kayıt nasıl önlenir?
İstek karşıya ulaşmış ama yanıt size dönmemiş olabilir. Bu durumda tekrar gönderdiğinizde sipariş ya da fatura ikinci kez oluşabilir. Çözüm, işlemlere benzersiz bir kimlik vermek ve karşı tarafın aynı kimlikle gelen isteği yalnızca bir kez işlemesini sağlamaktır. Hata kuyruğundaki kayıtları düzenli gözden geçirin. Dayanıklı aktarımlar için Entegrasyon ve Otomasyon Marketi sayfasına bakabilirsiniz.
Yeniden denemeler arttıysa bu, çoğu zaman altta yatan bir sorunun işaretidir; sayıları izleyin.
Yeniden deneme nerede kullanılır?
- Kargo firmasının API'si geçici olarak yanıt vermediğinde gönderi kaydının tekrar denenmesi
- Ödeme bildiriminin ulaşmadığı durumda webhook'un yeniden gönderilmesi
- Stok güncellemesinin bağlantı kopunca sonradan tamamlanması
- Pazaryeri istek sınırına takılan çağrıların bekletilip tekrarlanması
Hataya dayanıklı entegrasyonlar kurun
Sistemler arası aktarımların hata durumunda kaybolmadan sürmesini sağlayan entegrasyonlar.
Yeniden deneme hakkında sık sorulanlar
Her hata yeniden denenir mi?
Yeniden deneme çift kayıt oluşturur mu?
Kaç kez yeniden denenmeli?
İlk adımı birlikte atalım
Operasyonunuzdaki elle yürüyen işleri inceleyip ayda kaç saatin sistemle yürüyebileceğini yazılı olarak veriyoruz; teknik bilgi ve taahhüt gerekmez.
- Kredi kartı yok
- 1 iş gününde dönüş
- KVKK uyumlu
- Veriler şifreli bağlantıyla iletilir