Я использую задачу Django Celery для подключения к Facebook Graph API с запросами lib с использованием Gevent. Проблема, с которой я постоянно сталкиваюсь, заключается в том, что время от времени я получаю EOF в нарушении исключения протокола. Я искал вокруг, и различные источники предлагают разные исправления, но никто не работает.Python SSL-соединение «EOF произошел с нарушением протокола»
Я пробовал обезьяну, исправляя модуль ssl (gevent.monkey.patch_all()) и некоторые другие тоже, но не повезло.
Я даже не уверен, что это проблема OpenSSL как некоторые источники могут предложить, как я не столкнулся с этим перед применением оптимального качества 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
Я использую последнюю 1.0rc GEvent версию.
Другой вопрос, который держит внезапная вверх время от времени, хотя URL является правильным является: Повторная (5 попыток остаться) после того, как разорванная связь по «ошибки (2,„Нет такого файла или каталога“)»:/ID/события? предел = 5000 & поля = описание, название, местоположение, start_time, END_TIME & access_token = ЗНАК
Вы пробовали [форсировать TLSv1, как предлагается здесь] (http://stackoverflow.com/questions/14102416/python-requests-requests-exceptions-sslerror-errno-8-ssl-c504-eof-occurred)? – jfs
Я также попробую это исправить. Моя единственная проблема заключается в том, что при выполнении задачи с Gevent Pool size = 1 я вообще не получаю никаких ошибок, но когда я пытаюсь запустить больше (от 2 до 10), ошибки становятся более распространенными (недоступность сети, ошибка EOF ssl, нет такой файл или каталог). Так что мне кажется, что это проблема? – user962563
Я не знаю текущий статус совместимости 'gevent' /' requests'. Вы пробовали «grequests»? – jfs