Créer des tâches de fond en Django peut être effectué de plusieurs manières, mais une des plus populaires est l’utilisation de l’application Django-Celery. Celery est une queue de tâches asynchrone basée sur la distribution de messages. Elle est concentrée sur le traitement en temps réel, mais prend également en charge la planification de tâches.
Il faut tout d’abord installer Celery. Si vous utilisez pip, la commande sera :
```
pip install celery
```
Une fois que Celery est installé, vous devez le configurer pour votre projet. Si votre projet Django s’appelle “monprojet”, vous devrez créer un fichier nommé “celery.py” dans le répertoire “monprojet”. Le contenu de ce fichier pourrait ressembler à ceci :
```
from future import absolute_import, unicode_literals
import os
from celery import Celery
app = Celery(‘monprojet’)
Pour effectuer des tâches en arrière-plan, vous allez créer des fonctions appelées “tâches”. Ces fonctions sont définies avec le décorateur @app.task. Par exemple, vous pourriez avoir une tâche qui ressemble à ceci :
```
@app.task
def ajouter(x, y):
return x + y
```
La tâche ci-dessus pourrait être appelée quelque part dans votre code Django avec la syntaxe Celery “delay”, comme ceci :
```
resultat = ajouter.delay(4, 4)
```
Enfin, pour exécuter vos tâches en arrière-plan, vous devez démarrer un “worker” Celery. Dans votre ligne de commande, exécutez la commande suivante :
```
celery -A monprojet worker —loglevel=info
```
Cela démarrera un worker Celery qui exécutera les tâches en arrière-plan.
Sources :
- Django-Celery – Django documentation - (https://docs.celeryproject.org/en/stable/django/first-steps-with-django.html)
- Celery documentation – First steps with Django. - (https://docs.djangoproject.com/fr/3.0/topics/class-based-views/intro/#decorating-class-based-views)