Python Requests Timeout Ayarları

0 Respuestas 18 Visitas
·
Participantes
Autor del tema #1
Python Requests Timeout Ayarları

Python'da Requests kütüphanesi, HTTP istekleri göndermede en sık kullanılan araçlardan biridir ve özellikle API entegrasyonlarında büyük kolaylık sağlar. Ancak, bu isteklerin zaman aşımı (timeout) ayarını doğru yapılandırmak, uygulamanızın güvenilirliği ve performansı açısından kritik öneme sahiptir.

İsteklerde timeout parametresi, sunucudan yanıt alınması için belirlenen maksimum süreyi tanımlar. Bu süre aşılırsa, Requests bir istisna (TimeoutError) fırlatır. Bu, özellikle yavaş veya kararsız ağ ortamlarında, uygulamanızın takılmasını veya sonsuz beklemeyi önler.

Requests'te timeout ayarını kullanmak oldukça basittir. Örneğin:

CÓDIGO
12345678910python  
import requests  
  
try:  
    response = requests.get('https://ornekapi.com/data', timeout=5)  # 5 saniye timeout  
    response.raise_for_status()  
except requests.exceptions.Timeout:  
    print('İstek zaman aşımına uğradı.')  
except requests.exceptions.RequestException as e:  
    print(f'Bir hata oluştu: {e}')  


Burada, timeout parametresi saniye cinsinden verilir. Eğer sunucu 5 saniyede yanıt vermezse, istek iptal edilir ve programınızda kontrol edilebilir bir hata oluşur. Aynı zamanda, timeout'u hem bağlantı (connect) hem de veri alma (read) aşamaları için ayrı ayrı belirleyebilirsiniz:

CÓDIGO
12python  
response = requests.get('https://ornekapi.com/data', timeout=(3, 10))  # 3 saniye bağlantı, 10 saniye veri okuma için


Burada ilk değer bağlantı aşaması, ikinci değer ise veri okuma aşaması için zaman aşımını temsil eder. Bu esneklik, farklı bağlantı koşullarına göre ayar yapmayı kolaylaştırır.

Uzun süreli veya kritik işlemlerde, timeout ayarını dikkatlice yapılandırmak, uygulamanın stabilitesi ve kullanıcı deneyimi açısından çok önemlidir. Yanı sıra, zaman aşımı sırasında uygun hata yönetimi ve yeniden deneme stratejileri geliştirmek, sisteminizin dayanıklılığını artırabilir.

Debes haber iniciado sesión para responder.

0 citas seleccionadas