mysqldb et threading - Python - Programmation
Marsh Posté le 01-04-2009 à 17:04:46
pouchat a écrit : Le soucis c'est qu'une fois sur 2 ça plante au niveau d'une des requetes fait par une des threads. D'après la doc, 2 mêmes threads ne peuvent partager la même connexion d'où mon problème... Y a t-il une solution ? Tout en évitant de créer une nouvelle connexion par threads. Si j'ai 20 threads, 20 connexion à MySQL risquent de charger un peu le serveur. |
Ne peux-tu pas, dans ton thread, créer la connexion, exécuter ta requête, clôre ta requête puis clôre ta connexion une fois devenue inutile ???
Marsh Posté le 26-03-2009 à 00:45:35
bonjour,
pour faire suite à ça http://forum.hardware.fr/hfr/Progr [...] 1783_1.htm ma classe python qui récupère des urls sur internet doit maintenant vérifier si par exemple une url est dans une table et si non l'ajouter.
Le soucis c'est qu'une fois sur 2 ça plante au niveau d'une des requetes fait par une des threads. D'après la doc, 2 mêmes threads ne peuvent partager la même connexion d'où mon problème... Y a t-il une solution ? Tout en évitant de créer une nouvelle connexion par threads. Si j'ai 20 threads, 20 connexion à MySQL risquent de charger un peu le serveur.
Code de base qui déconne si plusieurs threads:
donc des fois ça marche, la plupart du temps je m'en sors avec une erreur sql (_mysql_exceptions.OperationalError: 2006, 'MySQL server has gone away') et d'autre fois, le programme se bloque sans me rendre la main (je suppose qu'une des threads doit bloquer le q.join() qui attend).
je précise : python 2.6 avec MySQLdb 1.2.2 et MySQL-server 5.0.77 (sous arch)
merci
Message édité par pouchat le 26-03-2009 à 00:49:25