Est l'objet de Session à partir de Python Demandes de la bibliothèque de threads?

Python populaire Les demandes bibliothèque est dit être thread-safe sur sa page d'accueil, mais sans plus de détails sont donnés. Si je l'appelle requests.session(), puis-je en toute sécurité passer cet objet de plusieurs threads comme suit:

session = requests.session()
for i in xrange(thread_count):
    threading.Thread(
        target=target,
        args=(session,),
        kwargs={}
    )

et de faire des requêtes à l'aide du même pool de connexion à plusieurs threads?

Si oui, est-ce l'approche recommandée, ou chaque thread doit disposer de son propre pool de connexion? (En supposant que la taille totale de tous les pools de connexions individuelles additionnées à la taille de ce qui serait un gros pool de connexion, comme ci-dessus.) Quels sont les avantages et les inconvénients de chaque approche?

  • A vous de déterminer qui est le meilleur? Je suis actuellement en cours d'exécution dans près de la même question. Je pensais à une nouvelle session pour chaque thread afin de ne pas goulot d'étranglement toutes les demandes dans un seul pool de connexion.
  • Wilson Pas exactement. Bien que pour un de mes projets où j'ai été en utilisant un objet de session pour demander la même URL, encore et encore, j'ai envoyé le même objet session pour tous les threads. L'application ne semble pas fonctionner, mais je ne suis toujours pas sûr de ce que la meilleure approche est de. Notez, cependant, que mon problème n'était pas avec les goulots d'étranglement les pools de connexion, mais plutôt avec l'ouverture d'un trop grand nombre de connexions et de l'envoi de trop de requêtes à la fois.
  • Les demandes construit sur le haut de urllib3. Le fil de sécurité de demandes est en grande partie en raison de la fil-sécurité des urllib3, le doucmentation pour qui traite de la sécurité des threads dans le plus grand détail.
  • J'ai fini par créer une session dans la boucle for. Chaque thread obtient son propre pool de connexion.
InformationsquelleAutor DJG | 2013-08-12