InternalError: текущая транзакция отменяется, команды игнорируются до конца блока транзакции - PullRequest
3 голосов
/ 05 февраля 2010

Я получаю эту ошибку при выполнении вызовов базы данных в подпроцессе с использованием многопроцессорной библиотеки.

Визит: Pastie

InternalError: текущая транзакция прервана, команды игнорируются до конец блока транзакции

это для базы данных Postgre, использующей драйвер psycopg2 в web.py.

Однако, если я использую threading.Thread вместо multiprocessing.Process, я не получу эту ошибку.
Есть идеи как это исправить?

1 Ответ

7 голосов
/ 05 февраля 2010

многопроцессорная работа (в системах UNIX) путем разветвления текущего процесса. Если у вас есть соединение с базой данных, это оставит два процесса (текущий и новый) с тем же соединением с базой данных. Попытка использовать это от обоих - плохо. Вместо этого создайте новое соединение с базой данных в дочернем процессе.

...