Celery setup, tasks, beats, monitoring, error handling, retry logic
Celery — распределённая система очередей задач для фоновой обработки.
💡 Правило: Выносите в Celery всё что занимает > 1 секунды.
# settings.py
CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'# celery.py
from celery import Celery
app = Celery('myproject')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()# tasks.py
from celery import shared_task
@shared_task
def send_email(to, subject, body):
# Отправка email
pass
# Вызов
send_email.delay('user@example.com', 'Hello', 'Body')
# С отсрочкой
send_email.apply_async(args=[...], countdown=300) # через 5 минут# settings.py
CELERY_BEAT_SCHEDULE = {
'send-daily-report': {
'task': 'myapp.tasks.send_daily_report',
'schedule': crontab(hour=8, minute=0),
},
}Вопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.