python: [Errno 10054] une connexion existante a été fermée de force par l'hôte distant

j'écris python pour ramper L'espace Twitter en utilisant Twitter-py. J'ai mis le crawler pour dormir pendant un certain temps (2 secondes) entre chaque requête pour api.twitter.com. Cependant, après quelques temps de course (autour de 1), Quand la limite de taux de Twitter n'a pas encore dépassé, j'ai eu cette erreur.

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

Quelles sont les causes possibles de ce problème et comment le résoudre?

j'ai cherché et j'ai trouvé que le serveur Twitter lui-même peut forcer à fermer la connexion en raison de de nombreuses demandes.

Merci beaucoup d'avance.

26
demandé sur Kara 2012-01-11 09:54:15

3 réponses

ceci peut être causé par le fait que les deux côtés de la connexion ne sont pas d'accord sur le fait que la connexion s'est éteinte ou non au cours d'un keepalive. (Votre code essaie de réutiliser la connexion juste au moment où le serveur la ferme parce qu'elle est inactive depuis trop longtemps.) Vous devriez simplement réessayer l'opération sur une nouvelle connexion. (Je suis surpris que votre bibliothèque ne fasse pas cela automatiquement.)

9
répondu David Schwartz 2012-01-11 05:58:20

il y a de nombreuses causes telles que

  • la liaison réseau entre le serveur et le client peut être temporairement désactivée.
  • à court de ressources système.
  • envoi de données malformées.

Pour examiner le problème en détail, vous pouvez utiliser Wireshark.

ou vous pouvez simplement requérir ou vous connecter à nouveau.

4
répondu sorry back from offline work 2012-01-11 20:44:07
OperationalError: Lost connection to HANA server (ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

j'ai essayé d'exécuter le code de connexion(mentionné ci-dessous), qui a créé cette erreur, encore une fois et ça a fonctionné.


    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()

c'était parce que le serveur refusait de se connecter. Il peut vous demander d'attendre un peu et essayer à nouveau. Essayez de fermer le Studio Hana en vous déconnectant et en vous connectant à nouveau. Continuez à utiliser le code plusieurs fois.

0
répondu Sreeja 2017-09-11 13:54:23