Menu
CoddyTech

Zaman Aşımları ve Yeniden Denemeler

Coddy'nin Terminal ile Ağ İletişimi kursunda ders 45 / 47.

Varsayılan olarak curl çok uzun süre bekler. Bir betikte bu bir hatadır: erişilemeyen tek bir sunucu, biri fark edene kadar işinizin takılı kalmasına neden olur.

curl -s --max-time 5 --connect-timeout 2 URL

--connect-timeout, bağlantı kurmak için harcanacak süreyi sınırlar. --max-time, işlemin tamamı için harcanacak süreyi sınırlar. Bu sürelerden herhangi birinin aşılması, çıkış kodu 28 değerini verir.

Yeniden deneme, göründüğünden daha fazla dikkat gerektirir. Başarısız bir GET veya PUT isteğini yinelemek güvenlidir, çünkü ikisi de idempotenttir. Bir POST isteğini yinelemek ikinci bir kayıt oluşturabilir ve zaman aşımı en kötü durumdur: ilk isteğin işlenip işlenmediğini asla öğrenemezsiniz.

Bu yüzden okuma isteklerini rahatça yeniden deneyin, yazma isteklerini yeniden denemeden önce düşünün. Bunu yapmak zorundaysanız, sunucudan idempotency anahtarı gibi, işlemi güvenli hâle getirmenin bir yolunu isteyin.

challenge icon

Görev

Orta

Asla yanıtlanmayacak bir isteğe süre sınırı koyun.

Trafiği sessizce yutan bir adres olan http://10.255.255.1/ adresine istek gönderin, 2 saniye sonra vazgeçin ve ardından curl'ün çıkış koduyla birlikte gave up: yazdırın.

Beklenen çıktı:

gave up: 28

Zaman aşımı olmadan bu istek bir dakikadan çok daha uzun süre takılı kalırdı.

Kendin dene

Terminal
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Terminal ile Ağ İletişimi bölümündeki tüm dersler

Kendi başına pratik yap: Terminal playground