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

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

Посещение: Pastie

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

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

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

Ответ 1

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