InternalError: la transaction courante est annulée, les commandes ignorées jusqu'à la fin du bloc de transaction
j'obtiens cette erreur en faisant des appels de base de données dans un processus secondaire en utilisant la bibliothèque multiprocessing.
"151940920 De Visite": PastieInternalError: la transaction courante est annulée, les commandes ignorées jusqu'à ce que bloc fin de transaction
il s'agit d'une base de données Postgre, en utilisant psycopg2
driver dans web.py
.
cependant si j'utilise threading.Thread
au lieu de multiprocessing.Process
je ne comprends pas cette erreur.
Une idée de comment résoudre ce problème?
1 réponses
multiprocessing fonctionne (sur les systèmes UNIX) en bifurquant le processus en cours. Si vous disposez d'une connexion de base de données, cela laissera les deux processus (l'actuel et le nouveau) avec la même connexion à la base. Essayer de l'utiliser des deux est mauvais. Créez une nouvelle connexion de base de données dans le processus enfant à la place.