2015-06-19 19 views
5
requests.exceptions.ConnectionError: ('Connection aborted.', error(99, 'Cannot assign requested address')) 

bu hatayı alıyordum.istekleri, istenen adresi, bağlantı noktası dışında atayamaz mı? piton istekleri kütüphanesi kullanan birden fazla işlem çalışmaktadır ve çok hızlı bir şekilde (< 10 ms) dönüyordu bir API <code>post</code> işlevi çağrılırken

Çalışan işlemlerin sayısını azaltmanın geciktirici bir etkisi vardı, ancak yalnızca 1 işlemden geçirme işlemi sorunu ortadan kaldırdı. Bu bir çözüm değildi, ancak sonlu bir kaynak suçlu olduğunu gösterdi.

+0

:

import requests for line in file: requests.get('http://example.com/api?key={key}'.format(key=line['key'])) 

import requests with requests.Session() as session: for line in file: session.get('http://example.com/api?key={key}'.format(key=line['key'])) 

Bu sorular bazı ilgili tavsiyeler vardı olur yüksek bir aralıkta port numarası (IIRC, maksimum ~ 64k; Aralığın başladığı yerde, gelen kullanım için ayrılmış portlar yapılandırılabilir). Bu nedenle, çok fazla sayıda giden TCP bağlantınız varsa, aynı zamanda açık kütüphane/programlama dili/etc. kullanıyorsunuz, bu soruna isabet ediyorsunuz. –

+1

Bu cevap mevcut bağlantı noktası aralığı 61000. aracılığıyla 32768 olduğunu belirtiyor Yani mevcut limanların sayısı = yorum için 61000-32768 + 1 = 28233 http://stackoverflow.com/a/11208991/1942007 teşekkürler! – Garren

cevap