Каков наилучший и безопасный для производства способ эффективно обрабатывать их в Django, в идеале с параллельной обработкой?

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

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

  • загружайте данные / обрабатывайте файл параллельно для повышения производительности

  • Отправьте ответ во внешний интерфейс после завершения загрузки , в то время как обработка продолжается в фоновом режиме

  • Безопасно обработайте это с помощью Gunicorn или другого сервера WSGI

Какие-либо рекомендации по архитектуре или проверенным шаблонам были бы очень полезны?

Вернуться на верх