Ripple Motion -Techtalk - développement mobile - nantes

TechTalk#14 – Celery

 

TECH TALK #14

 

Celery

 

Ce techtalk va mettre en lumière la librairie Celery qui est par définition : une file de tâches asynchrone basé sur un système de passage de message distribué. Celery est maintenant indépendant et ne nécessite plus forcément l’utilisation de Django.

La file “queue” de tache est utilisée pour distribuer du travail de manière non-bloquante. Toutes les entrées dans cette file sont appelées tâche “task”. Les “worker” permettent de monitorer les queues afin de récupérer les tâches à effectuer.

Il est possible avec Celery de répéter ou de planifier des tâches.

 

Voici quelques cas d’utilisation :

  • Notifier des utilisateurs en background (email, notification push, …)
  • Générer des PDF
  • Communiquer avec des API externes
  • Lancer des tâches de nettoyage de base de données / logs

 

Le broker est la partie centrale, il est l’intermédiaire entre les consumers (ceux qui traitent les messages) et les producers (ceux qui envoient les messages). Il peut répondre à tout instant à la question suivante : “Que reste-t-il à faire ?”. Pour cela, il stocke les queues et leurs tasks associées.

Celery communique à travers des messages. Les messages transitent via des “broker”. Les workers récupèrent les messages et les traitent. Les résultats sont ensuite envoyés au backend de résultat.

Il est possible d’avoir plusieurs broker ainsi que plusieurs worker.

 

 Dans nos cas d’usage, nous utilisons 2 types de broker :

  • RabbitMQ (persistent queue, haute disponibilité)
  • Redis

 

Nous verrons quelques configurations avancer des différents composants de Celery.

Nous verrons l’intégration de Celery dans Django, ainsi que dans les tests unitaires Django. Nous vous donnerons plusieurs conseils et bonnes pratiques.

 

Exemple d’architecture :

 

TECHTALK 14 - Ripple motion services

 

Tech Talk animé par :

 

Ripple Motion : Alix Martineau - Développeur mobile IOS et Android

 

ALIX MARTINEAU

Développeur

 

N’hésitez pas à télécharger le TechTalk #14 – Celery