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. Processus démarrés par cron consommer le nombre de messages spécifié, puis arrêter. Relecture cron redémarre le consommateur.

L’exemple suivant illustre la variable crontab configuration pour les consommateurs actifs :

/app/code/Magento/MessageQueue/etc/crontab.xml

...
<job name="consumers_runner" instance="Magento\MessageQueue\Model\Cron\ConsumersRunner" method="run">
    <schedule>* * * * *</schedule>
</job>
...
INFO
La fréquence à laquelle vous vérifiez les files d’attente des messages peut dépendre de la logique métier et des ressources système disponibles. En règle générale, vous pouvez rechercher de nouveaux clients et envoyer plus souvent des emails de bienvenue qu’un processus plus gourmand en ressources, tel que la mise à jour de votre catalogue. Vous devez définir cron planifications en fonction des besoins de votre entreprise.
Il peut être configuré dans les options de configuration Admin Magasins > Paramètres > Configuration > Avancé > Système > Cron pour le groupe : consommateurs.
Voir Configuration et exécution de cron pour plus d’informations sur l’utilisation de 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

  • Tâche Cron consumers_runner est activé
  • Tâche Cron consumers_runner exécute tous les consommateurs définis
  • Chaque consommateur traite 10 000 messages, puis s’arrête
INFO
Si votre boutique Adobe Commerce est hébergée sur la plateforme Cloud, utilisez la variable CRON_CONSUMERS_RUNNER pour configurer la variable consumers_runner tâche cron.

Configuration spécifique

Modifiez la variable /app/etc/env.php fichier 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 variable consumers_runner tâche cron (par défaut = true).

  • max_messages - Nombre maximum de messages que chaque consommateur doit traiter avant de s’arrêter (valeur par défaut = 10000). Bien que nous ne le recommandions pas, vous pouvez utiliser 0 pour empêcher le consommateur de s’arrêter. Voir consumers_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 s’exécute. all 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. Voir Remplacer la file d’attente des messages de MySQL par AMQP pour plus d’informations.
    note info
    INFO
    Si votre boutique Adobe Commerce est hébergée sur la plateforme Cloud, utilisez la variable CONSUMERS_WAIT_FOR_MAX_MESSAGES pour configurer la manière dont les consommateurs traitent les messages de la file d’attente des messages.

Voir Démarrage des consommateurs de la file de messages.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c