2010-02-05 6 views
3

다중 프로세스 라이브러리를 사용하는 하위 프로세스에서 데이터베이스 호출을 수행 할 때이 오류가 발생합니다.InternalError : 현재 트랜잭션이 중단되고 트랜잭션 블록이 끝날 때까지 명령이 무시됩니다.

방문일 : Pastie

InternalError: current transaction is aborted, commands ignored until end of transaction block

web.pypsycopg2 드라이버를 사용하여 Postgre 데이터베이스이다.

multiprocessing.Process 대신 threading.Thread을 사용하면이 오류가 발생하지 않습니다.
문제를 해결하는 방법을 알려주세요.

답변

7

(UNIX 시스템의 경우) 현재 프로세스를 포킹하여 다중 처리가 작동합니다. 기존 데이터베이스 연결이있는 경우 두 개의 프로세스 (현재 프로세스와 새 프로세스)가 동일한 데이터베이스 연결로 남습니다. 둘 다에서 그것을 사용하려고 노력하는 것은 나쁘다. 대신 하위 프로세스에서 새 데이터베이스 연결을 작성하십시오.

관련 문제