De l’asynchrone avec Symfony 5 et RabbitMQ

Merci à Cyril T. pour sa contribution le 26/12/2020

YoanDev
Francais Francais
Symfony
RabbitMQ
Je vous propose de mettre en place un système de gestion Asynchrone dans un projet Symfony 5 en utilisant RabbitMQ, et vous allez le voir c’est super simple ! Pour nous simplifier la tâche Symfony dispose d’un super composant : Messenger.

Pour que le concept soit simple à comprendre nous allons simuler le cas d’usage suivant :

- Création d’une application (le strict minimum pour l’exemple) de déclaration d’incidents avec enregistrement et page de login pour des utilisateurs
- Pour chaque déclaration une tâche d’envoi de mail s’exécute
- Pour la démonstration, nous ferons en sorte que cet envoi de mail prenne du temps (10 secondes)

Nous ferons la constations que l’expérience utilisateur n’est pas top (attendre 10 secondes à chaque fois, c’est juste pas possible) et qu’il nous faut donc différer dans le temps et passer en arrière-plan l’envoie du mail.