Взаимодействие с программой на фоне Django - PullRequest
1 голос
/ 06 марта 2011

У меня есть программа, которая классифицирует текст и хотела бы сделать его интерактивным с пользователем на внешнем интерфейсе моего сайта django. Проблема в том, что программе требуется 20 секунд, чтобы загрузить тренировочный набор и приступить к работе, что невозможно при каждом вводе данных.

Вместо этого я бы хотел, чтобы Django загрузил программу один раз при запуске сервера, и чтобы весь ввод данных пользователем взаимодействовал с ним через представление.

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

Есть идеи?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 06 марта 2011

Возможно, что Сельдерей будет уместным здесь.Для Django доступна интеграция с django-celery .

2 голосов
/ 06 марта 2011

Как заметил Джим celery - это один из лучших вариантов управления асинхронной задачей, но если вы хотите избежать затрат на celery и зависимостей, вы можете просто добавить поле состояния в модель, которую принимает процесспоместите (например, text_processed логическое поле со значением по умолчанию = False) и создайте приложение команда управления , которое будет обрабатывать процесс созданных записей БД.

Добавить команда на крон и все готово.

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