Выполнение программы на Python в Django с каждой новой записью публикуется в REST API

#python #django #flutter #rest #django-rest-framework

Вопрос:

Я довольно новичок в Джанго. Я создаю приложение, в котором размещаю изображения из приложения flutter в API REST Django. Мне нужно запустить скрипт на python с вводом в виде изображения, которое публикуется в API.

У кого-нибудь есть какие-нибудь идеи по этому поводу?

Ответ №1:

Лучший способ справиться с этим-система управления заданиями (например, Slurm, Torque и Oracle Grid Engine), поскольку вы можете создавать и отправлять задания с каждым загруженным изображением и отправлять ответ пользователю, а система управления заданиями будет обрабатывать независимо от запроса. Сельдерей также может сработать, если работа не займет много времени.

Ответ №2:

Простая реализация, которая хорошо масштабируется:

  • Загрузите изображения в каталог uploaded
  • Пусть ваш скрипт запускается как демон (управляемый systemd), ищущий новые файлы в каталоге uploaded
  • всякий раз, когда он находит новый файл, он перемещает mv его в каталог working (таким образом, вы можете запускать несколько экземпляров своего скрипта параллельно для увеличения масштаба).
  • как только ваш скрипт закончит с изображением, он переместит его в каталог finished (или туда, где вам когда-либо понадобятся готовые изображения).

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

Он также отделяет обработку изображений от вашего веб-сервера.