Dino Geek essaye de t'aider

Comment créer des tâches de fond en Django ?


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

  1. fix pour que ‘settings.py’ soit toujours utilisé
    os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘monprojet.settings’)

app = Celery(‘monprojet’)

  1. Utilisation de la configuration de Django pour configurer Celery
    app.config_from_object(‘django.conf:settings’, namespace=‘CELERY’)
  1. Load task modules from all registered Django app configs.
    app.autodiscover_tasks()
    ```

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)


Générez simplement des articles pour optimiser votre SEO
Générez simplement des articles pour optimiser votre SEO





DinoGeek propose des articles simples sur des technologies complexes

Vous souhaitez être cité dans cet article ? Rien de plus simple, contactez-nous à dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nom de Domaine | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Mentions Légales / Conditions Générales d'Utilisation