Celery — это распределенная очередь задач . Она позволяет вам выгрузить работу из вашего приложения на Python. Как только вы интегрируете Celery в свое приложение, вы можете отправлять трудоемкие задачи в очередь задач Celery. Таким образом, ваше веб-приложение может продолжать быстро реагировать на запросы пользователей, в то время как Celery асинхронно выполняет операции, требующие больших затрат в фоновом режиме.
Основы Python Celery
Celery — это распределенная очередь задач, которая может собирать, записывать, планировать и выполнять задачи вне вашей основной программы.
Чтобы получать задачи от вашей программы и отправлять результаты в серверную часть, Celery требуется брокер сообщений для связи. Redis и RabbitMQ — это два брокера сообщений, которые разработчики часто используют вместе с Celery.
В этом разделе вы будете использовать Redis в качестве брокера сообщений. Однако вы можете использовать RabbitMQ в качестве брокера сообщений.
Зачем использовать Celery?
Есть две основные причины, по которым большинство разработчиков хотят начать использовать Celery:
- Перенос работы из вашего приложения в распределенные процессы, которые могут работать независимо от вашего приложения.
- Планирование выполнения задач в определенное время, иногда как повторяющиеся события.
Несмотря на то, что обе эти функции являются частью Celery, к ним часто обращаются отдельно:
- Рабочие процессы Celery — это процессы, которые выполняют задачи независимо друг от друга и вне контекста вашего основного сервиса.
- Celery beat — это планировщик, который определяет, когда запускать задачи. Вы также можете использовать его для планирования периодических задач.
Рабочие процессы составляют основу Celery. Даже если вы хотите запланировать повторяющиеся задачи с помощью Celery beat, процесс Celery примет ваши инструкции и выполнит их в запланированное время. Celery beat добавляет к этому миксу планировщик для рабочих процессов Celery.