Gestion des files d’attente de messages
Vous pouvez gérer les files d’attente de messages à partir de la ligne de commande à l’aide de tâches cron ou d’un gestionnaire de processus externe pour vous assurer que les consommateurs récupèrent les messages.
Gestion des processus
Les tâches Cron sont le mécanisme par défaut pour redémarrer les consommateurs. Les processus démarrés par cron
utilisent le nombre spécifié de messages, puis s’arrêtent. La réexécution de cron
redémarre le consommateur.
L’exemple suivant illustre la configuration crontab
pour l’exécution des consommateurs :
/app/code/Magento/MessageQueue/etc/crontab.xml
...
<job name="consumers_runner" instance="Magento\MessageQueue\Model\Cron\ConsumersRunner" method="run">
<schedule>* * * * *</schedule>
</job>
...
cron
en fonction des besoins de votre entreprise.cron
avec Commerce.Vous pouvez également utiliser un gestionnaire de processus tel que Superviseur pour surveiller l’état des processus. Le gestionnaire peut utiliser la ligne de commande pour redémarrer les processus selon les besoins.
Configuration
Comportement par défaut
- La tâche Cron
consumers_runner
est activée. - La tâche Cron
consumers_runner
exécute tous les consommateurs définis. - Chaque consommateur traite 10 000 messages, puis s’arrête
CRON_CONSUMERS_RUNNER
pour configurer la tâche cron consumers_runner
.Configuration spécifique
Modifiez le fichier /app/etc/env.php
pour configurer la tâche cron consumers_runner
.
...
'cron_consumers_runner' => [
'cron_run' => false,
'max_messages' => 20000,
'consumers' => [
'consumer1',
'consumer2',
],
'multiple_processes' => [
'consumer1' => 4
]
],
...
-
cron_run
- Une valeur booléenne qui active ou désactive la tâcheconsumers_runner
cron (par défaut =true
). -
max_messages
- Nombre maximal de messages que chaque consommateur doit traiter avant de s’arrêter (par défaut =10000
). Bien que nous ne le recommandions pas, vous pouvez utiliser 0 pour empêcher le consommateur de s’arrêter. Voirconsumers_wait_for_messages
pour configurer la manière dont les consommateurs traitent les messages de la file d’attente des messages. -
consumers
- Un tableau de chaînes spécifiant les consommateurs à exécuter. Un tableau vide exécute tous les consommateurs. -
multiple_processes
- Un tableau de paires clé-valeur spécifiant le consommateur à exécuter dans le nombre de processus. Pris en charge dans Commerce 2.4.4 ou version ultérieure.note info INFO Il est déconseillé d’exécuter plusieurs consommateurs sur une file d’attente gérée par MySQL. Pour plus d’informations, voir Changement de la file d’attente des messages de MySQL en AMQP . note info INFO Si votre boutique Adobe Commerce est hébergée sur la plateforme Cloud, utilisez CONSUMERS_WAIT_FOR_MAX_MESSAGES
pour configurer la manière dont les clients traitent les messages de la file d’attente des messages.
Voir Démarrage des consommateurs de la file d’attente de messages.