Gérer les 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 constituent le mécanisme par défaut pour redémarrer les consommateurs. Les processus lancés par cron
consomment le nombre de messages spécifié, puis s'arrêtent. La réexécution cron
redémarre le client.
L’exemple suivant illustre la configuration crontab
pour l’exécution de 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 le statut des processus. Le gestionnaire peut utiliser la ligne de commande pour redémarrer les processus si nécessaire.
Configuration
Comportement par défaut
- La tâche cron
consumers_runner
est activée. - La tâche cron exécute
consumers_runner
tous les consommateurs définis - Chaque client traite 10000 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 le consumers_runner
de la tâche cron.
...
'cron_consumers_runner' => [
'cron_run' => false,
'max_messages' => 20000,
'consumers' => [
'consumer1',
'consumer2',
],
'multiple_processes' => [
'consumer1' => 4
]
],
...
-
cron_run
- Valeur booléenne qui active ou désactive la tâche cronconsumers_runner
(par défaut =true
). -
max_messages
- Nombre maximal de messages que chaque client 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 client de s’arrêter. Consultezconsumers_wait_for_messages
pour configurer la manière dont les consommateurs traitent les messages de la file d’attente des messages. -
consumers
- Tableau de chaînes spécifiant les consommateurs à exécuter. Un tableau vide s’exécute tous les consommateurs. -
multiple_processes
- Tableau de paires clé-valeur spécifiant le client à exécuter dans combien de processus. Pris en charge dans Commerce 2.4.4 ou version ultérieure.note info INFO Il n’est pas recommandé d’exécuter plusieurs consommateurs sur une file d’attente gérée par MySQL. Voir Modifier la file d’attente de messages de MySQL vers AMQP pour plus d’informations. note info INFO Si votre boutique Adobe Commerce est hébergée sur la plateforme cloud, utilisez le CONSUMERS_WAIT_FOR_MAX_MESSAGES
pour configurer la manière dont les consommateurs et consommatrices traitent les messages de la file d’attente des messages.
Voir Démarrer les consommateurs de file d’attente de messages.