Używam zadania Django Celery do łączenia się z interfejsem API Graph API z żądaniami lib przy użyciu Gevent. Problem, na który ciągle czekam, polega na tym, że od czasu do czasu pojawia się EOF z naruszeniem wyjątku protokołu. Szukałem w różnych źródłach, oferując różne poprawki, ale żadna nie działa.Pythonowe połączenie SSL "EOF wystąpił z naruszeniem protokołu"
Próbowałem łatania małpy modułu ssl (gevent.monkey.patch_all()) i kilka innych też, ale bez powodzenia.
Nie jestem nawet pewien, czy jest to problem, ponieważ niektóre źródła OpenSSL może sugerować, bo nie spotkałem go przed nałożeniem Optimization Gevent
Connection error: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol
Traceback (most recent call last):
File "/home/user/workspace/startup/project/events/tasks.py", line 52, in _process_page
data = requests.get(current_url)
File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/api.py", line 55, in get
return request('get', url, **kwargs)
File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/sessions.py", line 354, in request
resp = self.send(prep, **send_kwargs)
File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/sessions.py", line 460, in send
r = adapter.send(request, **kwargs)
File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/adapters.py", line 250, in send
raise SSLError(e)
SSLError: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol
Używam najnowszej wersji Gevent 1.0rc.
Kolejną kwestią, która utrzymuje poping się od czasu do czasu, choć URL jest prawidłowy to: Ponowna próba (5 prób pozostać) po podłączeniu złamane przez „błąd (2,«Nie ma takiego pliku lub katalogu»)”:/ID/wydarzenia? limit = 5000 & pola = opis, nazwa, lokalizacja, start_time, end_time & access_token = TOKEN
Czy próbowałeś [zmusza TLSv1 zgodnie z sugestią tutaj] (http://stackoverflow.com/questions/14102416/python-requests-requests-exceptions-sslerror-errno-8-ssl-c504-eof-occurred)? – jfs
Spróbuję również tej poprawki. Moim jedynym zmartwieniem jest to, że przy uruchamianiu zadania z wielkością puli Gevent = 1 nie otrzymuję żadnych błędów, ale gdy próbuję uruchomić więcej (2 do 10), błędy stają się bardziej powszechne (sieć nieosiągalna, błąd EOF ssl, nie taki plik lub katalog). Więc wydaje mi się, że jest to problem z geem? – user962563
Nie wiem, jaki jest obecny stan zgodności 'gevent' /' requests'. Czy próbowałeś "podróbek"? – jfs