Запуск асинхронных задач с Celery
Все, что выполняется в представлении, влияет на время отклика. Во многих случаях может понадобиться возвратить ответ пользователю как можно быстрее и позволить серверу выполнить некоторый процесс асинхронно. Это особенно актуально для трудоемких процессов или процессов, подверженных сбою, что может потребовать политики повторных попыток.
Например, платформа совместного использования видео позволяет пользователям загружать видео, но требует длительного времени для перекодирования загруженных видеороликов. Сайт может возвращать пользователю ответ, сообщать ему, что скоро начнется перекодирование, и начнется асинхронное перекодирование видео. Другим примером является отправка сообщений электронной почты пользователям. Если сайт отправляет уведомления по электронной почте от представления, то подключение SMTP может завершиться сбоем или замедлить ответ. Запуск асинхронных задач является необходимым для предотвращения блокирования выполнения.
Celery — это распределенная очередь задач, которая может обрабатывать большие объемы сообщений. Она выполняет обработку в реальном времени, но также поддерживает планирование задач. С помощью Celery можно не только легко создавать асинхронные задачи, но и выполнять их как можно быстрее, но можно также планировать их запуск в определенное время.
Вы можете ознакомиться с документацией к Celery здесь: http://celery.readthedocs.org/en/latest/