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 !')

Sources