InternalError: текущая транзакция прерывается, команды игнорируются до конца блока транзакции
Я получаю эту ошибку при выполнении вызовов базы данных в подпроцессе с использованием многопроцессорной библиотеки.
Посещение: Pastie
InternalError: текущая транзакция прерывается, команды игнорируются до тех пор, пока конец транзакционного блока
это для базы данных Postgre, используя драйвер psycopg2
в web.py
.
Однако, если я использую threading.Thread
вместо multiprocessing.Process
, я не получаю эту ошибку.
Любая идея, как это исправить?
Ответы
Ответ 1
многопроцессорная работа (в системах UNIX) путем разметки текущего процесса. Если у вас есть существующее соединение с базой данных, это оставит два процесса (текущий и новый) с тем же соединением с базой данных. Попытка использовать его из обоих - это плохо. Создайте новое подключение к базе данных в дочернем процессе.