Messenger Flashcards
Quels sont les 2 composantes essentiels de Messenger
une class Message (data) + une class Handler (read data + process)
quels sont les composantes d’une class Message Handler de Messenger
doit être Callable (__invoke()) + Attribute #[AsMessageHandler]
comment lister tous les Messenger Handler
php bin/console debug:messenger
comment procéder pour envoyer un message
utiliser le service MessageBusInterface avec la methode dispatch() et en argument la class Message (le handler sera ensuite invoker)
que fait-il faire pour faire du Messenger Async
utiliser un Transports (send to queueing + receive via worker)
comment est enregistrer un Messenger
par une config DSN
comment est configurer un Messenger
config/packages/messenger.yaml (framework:messenger:transports)
comment déclarer un message en Async
framework:messenger:routing:’ClassMessage’: async
quel probleme doit etre eviter quand on utilise l’héritage de class Messenger
si on déclare à la fois le parent et le child d’un message alors il sera expédié 2 fois
Que faut-il éviter de faire si on souhaite travailler avec une Entity pour data d’un Message
ne pas envoyer l’objet entity tel quel mais uniquement son ID et c’est le handler qui sera en charge de le reloader avec son ID.
comment lancer le worker SF pour les messages
php bin/console messenger:consume async
a quoi faut-il faire attention avec le worker messenger SF en prod
1/ ne pas le laisser run forever 2/ utiliser un process control pour gérer les workers (supervisor ou systemd) 3/ stopper les workers si errors 4/restart workers on deploy 5/ use same cache namespace between deploy
comment gérer la priorité entre des messages
il faut créer des transport différents tagger par des priorités différentes et ensuite déclarer les messages suivant ces tag de transport priorité
comment consume unique les messages de haut priorité
php bin/console messenger/consume async_priority_high
a quoi est lié le transport SF par rapport au broker
SF transport est lié par l’exchange du broker