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:
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:
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.