Bir proxy havuzu basit bir kesintiyi meşgul bir döngüye dönüştürebilir. Bir adres seç, başarısız ol, başka bir tane seç, yine başarısız ol. Kendi ağınız çöktüğü için her uç nokta erişilemezse, adresleri değiştirmek nedeni asla düzeltmez.

Havuzunuzdan veya ücretsiz proxy listesinden ilk proxy'yi seçmeden önce işleme bir bütçe verin: sınırlı sayıda deneme, sınırlı bağlantı ve okuma beklemesi ve genel görev için bir son tarih. Bir Requests zaman aşımı belgelenmiş bağlantı veya okuma davranışını denetler; yeni istekler göndermeye devam eden bir döngüyü tek başına sınırlamaz.

Neyin yeni bir denemeyi hak ettiğine karar verin

  • Reddedilen bir proxy bağlantısı farklı bir uç noktayı denemeyi haklı çıkarabilir.
  • Hedef yanıtı kendi yorumunu gerektirir. Bir HTTP hatası almak, bir istek yolunun tamamlandığını kanıtlar.
  • Proxy kimlik doğrulama hatası, büyüyen bir liste boyunca aynı kimlik bilgilerini tekrar tekrar denemek yerine uç noktayı ve hesabı kontrol etmeyi gerektirir.

Orijinal istisnayı veya durumu deneme kaydıyla birlikte saklayın. Yalnızca “tüm proxyler başarısız oldu” içeren bir son mesaj, hataların aynı nedenden kaynaklanıp kaynaklanmadığını gizler.

Her gerçek istekten önce her proxy'nin sağlığını kontrol etmek bir istek daha ekler ve yine de bir sonrakinin başarılı olacağını garanti edemez. Son sağlık bilgisini göreve uyduğu yerde yeniden kullanın, sonra gerçek işlemin kendi sonucunu bildirmesine izin verin.

Yeniden deneme işi tekrarlayabilir

Salt okunur bir alım için başka bir proxy'ye geçmek genellikle bir gönderimi yeniden oynatmaktan daha basittir. Bir satın alma veya form gönderimi gönderildikten sonra bağlantı koparsa, hedef onu zaten işlemiş olabilir. İşi yeniden oynatmadan önce hizmetin idempotency mekanizmasını ve HTTP yeniden deneme kurallarını izleyin.

Bütçe tükenince yararlı bir hata döndürün. Kanıtla duran bir işi onarmak, sessizce dönmeye devam eden ve biri fark edene kadar süren bir işten daha kolaydır.

İlgili makaleler