I'm getting this error when doing database calls in a sub process using multiprocessing library.
Visit : Pastie
InternalError: current transaction is aborted, commands ignored until end of transaction block
this is to a Postgre Database, using psycopg2
driver in web.py
.
However if I 开发者_运维百科use threading.Thread
instead of multiprocessing.Process
I don't get this error.
multiprocessing works (on UNIX systems) by forking the current process. If you have an existing database connection, this will leave the two processes (the current one and the new one) with the same database connection. Trying to use it from both is bad. Create a new database connection in the child process instead.
精彩评论