Messenger Flashcards

(35 cards)

1
Q

Quels sont les 2 composantes essentiels de Messenger

A

une class Message (data) + une class Handler (read data + process)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

quels sont les composantes d’une class Message Handler de Messenger

A

doit être Callable (__invoke()) + Attribute #[AsMessageHandler]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

comment lister tous les Messenger Handler

A

php bin/console debug:messenger

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

comment procéder pour envoyer un message

A

utiliser le service MessageBusInterface avec la methode dispatch() et en argument la class Message (le handler sera ensuite invoker)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

que fait-il faire pour faire du Messenger Async

A

utiliser un Transports (send to queueing + receive via worker)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

comment est enregistrer un Messenger

A

par une config DSN

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

comment est configurer un Messenger

A

config/packages/messenger.yaml (framework:messenger:transports)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

comment déclarer un message en Async

A

framework:messenger:routing:’ClassMessage’: async

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

quel probleme doit etre eviter quand on utilise l’héritage de class Messenger

A

si on déclare à la fois le parent et le child d’un message alors il sera expédié 2 fois

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Que faut-il éviter de faire si on souhaite travailler avec une Entity pour data d’un Message

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

comment lancer le worker SF pour les messages

A

php bin/console messenger:consume async

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

a quoi faut-il faire attention avec le worker messenger SF en prod

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

comment gérer la priorité entre des messages

A

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é

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

comment consume unique les messages de haut priorité

A

php bin/console messenger/consume async_priority_high

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

a quoi est lié le transport SF par rapport au broker

A

SF transport est lié par l’exchange du broker

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

que fais par defaut le worker SF par rapport au broker

A

il consume toutes les queues de l’exchange

17
Q

Comment dire à SF worker de ne consume que les messages de certaines queue de l’exchange

A

pgp bin/console messenger:consume my_transport –queus=fasttrack

18
Q

comment obtenir des stats par rapport au worker

A

php bin/console messenger:stats

19
Q

comment faire un sorte d’avoir un worker Stateless qui ne conserve pas de state de service SF entre chaq message

A

il faut faire en sorte que les services impl l’I ResetInterface et call la methode reset() entre chq message

20
Q

Comment gérer les error d’envoi de messages

A

utiliser une “retry_strategy” dans la config avec les options suivantes : max_retries, delay, multiplier, max_delay, jitter

21
Q

Comment éviter de retry une error d’envoi de message

A

il faut lancer une exception “RecoverableMessageHandlingException”

22
Q

comment gérer les messages qui sont en error au max_retries

A

il faut créer un transport spécial error pour pouvoir les gérer

23
Q

comment passer des options de transport DSN

A

dans la string DSN directement ou dans la config

24
Q

comment passer des options supplémentaires spécifique à un message

A

dans le message meme il faut utiliser AmqpStamp class

25
comment utiliser Doctrine avec messenger
avec le bundle symfony/doctrine-messenger
26
comment Trigger une command avec un message SF
dans le dispatcher il faut utiliser un obj RunCommandMessage
27
comment Trigger un process system avec un message SF
dans le dispatcher il faut utiliser un obj RunProcessMessage
28
comment Trigger un ping de WS avec un message SF
dans le dispatcher il faut utiliser un obj PingWebhookMessage
29
est-il possible de faire du transactionnal message
oui un handler de message peut également dispatch de new message à son tour
30
comment process many message with batch
en extends BatchHandlerInterface et use BatchHandlerTrait
31
comment ajouter un delay de process coté broker pour un message
en ajoutant un DelayStamp au message (info qui se traité par le broker)
32
quel sont les 9 Event pouvant être listener en rapport à Messenger
SendMessageToTransportEvent, WorkerMessageFailedEvent, WorkerMessageHandledEvent, WorkerMessageReceivedEvent, WorkerMEssageRetriedEvent, WorkerRateLimited, WorkerRunningEvent, WorkerStartedEvent, WorkerStoppedEvent
33
comment faire si le message receptionné par le handler n'est pas du format classique JSON
il faut utiliser un serializer dédié
34
que doit-on faire si on veut faire du CQRS avec messenger
séparer les Bus Message en 3 : Command, Query & Event
35
comment redispatcher un message dans le handler
il faut utiliser la Class RedispatchMessage