Вам нужно переместить задачи в фоновый режим (чтобы они не блокировали веб-процесс).Один из самых популярных способов сделать это - использовать очередь сообщений / задач.
Celery является одной из самых популярных распределенных очередей задач и в сочетании с django-Приложение сельдерея делает это тривиальным.
Сначала вам нужно настроить сельдерей (который так же прост, как pip install -U celery
);и один из многих брокеров обмена сообщениями, которые он поддерживает.Наиболее популярным является RabbitMQ ;но для быстрой и грязной настройки вы также можете использовать существующую базу данных 1013 * в качестве посредника сообщений.
Наконец, поскольку это распространенная проблема, решаемая с помощью celery + django, существует django-celery-email , который позаботится обо всем остальном.