İçeriğe geçin

Üstel geri çekilme

Üstel geri çekilme, yeniden denemeler arasındaki bekleme süresini belirlenmiş üst sınıra kadar katlayarak artırır.

Diğer adlarıExponential backoff
API ve veri sözleşmeleri

Üstel geri çekilme, yeniden denemeler arasındaki bekleme süresini bir katsayıyla, genellikle bir üst sınıra kadar artırır. Geçici bir aksaklık sonrasında uygulama böylece aynı isteği hemen tekrar göndermez. Bu, yeniden deneme stratejisi içindeki aralık kuralıdır.

Bekleme aralığını ve durma koşulunu ayırmak

Kurgusal bir API örneğinde başarısız denemeden sonra bir saniye beklenir; süre ikiye katlanır ve dört saniyeyle sınırlanır: 1 → 2 → 4 → 4 s. Bunlar jitter eklenmemiş örnek temel aralıklardır; önerilen işletim değerleri değildir. Jitter, birçok istemcinin aynı anda yeniden istek göndermemesi için gerçek bekleme süresine rastgele değişkenlik ekler.

Üst sınır, yeniden denemeleri bitirmez. Deneme sayısı, toplam süre bütçesi ve hangi hatalarda deneneceği ayrıca belirlenmelidir. Geçersiz bir talep beklemekle geçerli olmaz; yan etki oluşturabilecek bir işlemin güvenle tekrarlanabilmesi gerekir.

İstemci kütüphanesi zaten yeniden deniyorsa uygulamadaki başka bir döngü çağrı sayısını katlayabilir. Bu nedenle ekip iki katmanı birlikte değerlendirmelidir.

Kaynaklar