Django ORM и многопроцессорность - PullRequest
1 голос
/ 25 апреля 2010

Я использую Django ORM в своем скрипте Python в отрывном виде, т.е. он не работает в контексте обычного проекта Django.

Я также использую модуль мультиобработки. И разные процессы в свою очередь делают запросы.

Процесс успешно запущен в течение часа и завершился с этим сообщением

«Ошибка ввода-вывода: [Errno 32] сломанная труба»

После диагностики и отладки futhur эта ошибка появляется, когда я вызываю save () для экземпляра модели.

Мне интересно

Сохраняется ли процесс Django ORM?

Почему эта ошибка возникла бы еще?

Приветствие Анкур

Найден ответ, который я звонил в ответ после начала процесса. Эта ошибка появилась, когда я выполнил небольшую вырезку и вставку функции.

1 Ответ

0 голосов
/ 25 апреля 2010

Трудно сказать без дополнительной информации, но проблема, вероятно, вызвана тем, что у вас открытое соединение с базой данных, когда вы порождаете новые процессы, а затем пытаетесь использовать это соединение с базой данных в отдельных процессах. Не используйте повторно соединения с базой данных из родительского процесса в многопроцессорных рабочих, которых вы порождаете; всегда пересоздавать соединения с базой данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...