Vue d'ensemble
Celery 5.1, publié le 24 mai 2021, ajoute le support de Django 3.2 et améliore les annotations de tâches pour un contrôle plus fin de l'exécution.
Fonctionnalités principales
Support Django 3.2
Celery 5.1 est pleinement compatible avec Django 3.2 LTS, garantissant une intégration stable pour les projets utilisant la dernière version LTS de Django.
python
# celery.py (projet Django)
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projet.settings')
app = Celery('projet')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
print(f'Request: {self.request!r}')
Annotations de tâches
Les annotations de tâches permettent de configurer finement le comportement des tâches : limites de temps, taux d'exécution et priorités, le tout depuis la configuration.
python
from celery import shared_task
@shared_task(
rate_limit='10/m',
time_limit=300,
max_retries=3,
default_retry_delay=60,
)
def envoyer_email(destinataire, sujet, contenu):
"""Tâche avec limite de débit et timeout."""
# 10 exécutions max par minute, timeout 5 min
send_mail(destinataire, sujet, contenu)
# Appel asynchrone
envoyer_email.delay('user@example.com', 'Bienvenue', 'Bonjour !')
