Как Celery взаимодействует с основным приложением
Python
Senior
Без компании
Как Celery взаимодействует с основным приложением
Ответы
Celery работает асинхронно через брокер сообщений (RabbitMQ, Redis и др.). Основное приложение отправляет задачи в очередь брокера, а Celery Worker забирает их оттуда и выполняет. Результаты можно получить через бэкенд (например, Redis или Django ORM).
Пример:
```
# tasks.py
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0')
@app.task
def add(x, y):
return x + y
# Основное приложение
result = add.delay(4, 5) # Отправка задачи
print(result.get()) # Получение результата (блокирующий вызов)
```
Ключевые моменты:
- Основное приложение и Celery Worker работают независимо
- Общение происходит через брокер сообщений
- Результаты можно получать синхронно или асинхронно
- Celery поддерживает retry, scheduled tasks и другие продвинутые функции