python: [Errno 10054] Существующее соединение было принудительно закрыто удаленным хостом - PullRequest
28 голосов
/ 11 января 2012

Я пишу python для сканирования пространства Twitter с помощью Twitter-py. Я установил сканер на некоторое время (2 секунды) между каждым запросом к api.twitter.com. Тем не менее, после нескольких раз запуска (около 1), когда ограничение скорости Twitter еще не превышено, я получил эту ошибку.

[Errno 10054] An existing connection was forcibly closed by the remote host.

Каковы возможные причины этой проблемы и как ее решить?

Я искал и обнаружил, что сам сервер Twitter может принудительно закрыть соединение из-за большого количества запросов.

Заранее большое спасибо.

Ответы [ 3 ]

10 голосов
/ 11 января 2012

Это может быть вызвано разногласиями двух сторон соединения о том, истекло ли время соединения или нет во время keepalive.(Ваш код пытается повторно использовать соединение так же, как сервер закрывает его, потому что оно простаивает слишком долго.) В основном вам следует просто повторить операцию через новое соединение.(Я удивлен, что ваша библиотека не делает этого автоматически.)

5 голосов
/ 12 января 2012

Есть много причин, таких как

  • Возможно, временно отсутствует сетевое соединение между сервером и клиентом.
  • исчерпаны системные ресурсы.
  • отправкаискаженные данные.

Для более подробного изучения проблемы вы можете использовать Wireshark.

или вы можете просто повторно запросить или заново подключиться.

0 голосов
/ 11 сентября 2017

Для меня эта проблема возникла при попытке подключения к базе данных SAP Hana. Когда я получил эту ошибку,

OperationalError: Lost connection to HANA server (ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

Я попытался запустить код для подключения (упомянутый ниже), который снова создал эту ошибку, и она заработала.


    import pyhdb
    connection = pyhdb.connect(host="example.com",port=30015,user="user",password="secret")
    cursor = connection.cursor()
    cursor.execute("SELECT 'Hello Python World' FROM DUMMY")
    cursor.fetchone()
    connection.close()

Это произошло потому, что сервер отказался подключаться. Может потребоваться подождать некоторое время и повторить попытку. Попробуйте закрыть Hana Studio, выйдя из системы, а затем войдите снова. Продолжайте запускать код несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...