Существует несколько способов решения этой проблемы, и лучшее из них зависит от того, насколько тяжелой будет ваша рабочая нагрузка.
Если у вас небольшая рабочая нагрузка, вы можете использовать подход, использованный django-mailer , который заключается в определении модели «заданий», сохранении новых заданий в базе данных, а затем запуске cron в автономном режиме. Сценарий время от времени обрабатывает задания, хранящиеся в базе данных (удаляя их по завершении). Вы можете использовать что-то вроде django-хронограф , чтобы упростить планирование заданий
Если вам нужна помощь в понимании того, как написать скрипт для обработки задания, см. Статью Джеймса Беннетта Автономные сценарии Django для получения справки.
Если у вас очень высокая рабочая нагрузка, т. Е. Вам потребуется более одного сервера для обработки заданий, тогда вы захотите использовать реальную очередь распределенных задач. Здесь много конкурентов, поэтому я не могу подробно описать все варианты, но хороший вариант для приложений Django - это сельдерей .