Параллельная обработка в Django - PullRequest
0 голосов
/ 11 июня 2019

Я получаю файл от пользователя.Как только файл был загружен и сохранен, теперь этот файл должен быть проанализирован.Так как это большой файл, и анализ занимает минимум 1 час (скажем), у меня есть поле в модели, которое говорит о статусе анализа как Анализ или Анализ завершен.

Скрипт для анализа представляет собой отдельный файл Python, и анализ должен быть выполнен там.

Как мне это сделать?Я хочу, чтобы этот скрипт работал в фоновом режиме.Также мне нужно развернуть на сервере Apache.

Как мне действовать?

  1. Должен ли я использовать потоки?Как мне использовать внешние скрипты Python в потоках?
  2. Я узнал о CronTabs, но я не знаю, как я могу реализовать в этой ситуации.
  3. Я не могу использоватьCelery, так как Celery был остановлен для Windows
  4. Я узнал о Django Management Commands.Но поскольку я развертываю с использованием сервера Apache, я не знаю, смогу ли я это сделать.

1 Ответ

0 голосов
/ 11 июня 2019

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

Если вы можете выполнить пакетную обработку файлов, вы можете запустить задание cron, которое будет запускать команду django или скрипт через определенные промежутки времени.для обработки файла.

Если вы не можете выполнить пакетную обработку, вам следует взглянуть на другие системы очередей, такие как django-rq , или вы можете создать простую систему очередей, используя библиотеку диспетчеризации событий..

Если вы действительно хотите использовать сельдерей, то вы можете запустить весь свой проект внутри док-контейнера, чтобы вы могли использовать сельдерей 4, поскольку это ваше требование.

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