[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

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>
...
INFO
La fréquence de vérification des files d'attente de messages dépend de la logique de votre entreprise et des ressources système disponibles. En règle générale, vous pouvez rechercher de nouveaux clients et envoyer des e-mails de bienvenue plus fréquemment qu’un processus qui nécessite davantage de ressources, comme la mise à jour de votre catalogue. Vous devez définir des plannings de cron en fonction des besoins de votre entreprise.
Il peut être configuré dans les options de configuration Admin Stores > Settings > Configuration > Advanced > System > Cron pour le groupe : consumer.
Voir Configurer et exécuter 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 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
INFO
Si votre magasin Adobe Commerce est hébergé sur la plateforme cloud, utilisez l’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 cron consumers_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. Consultez consumers_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.

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