Administrar colas de mensajes

Puede administrar las colas de mensajes desde la línea de comandos mediante trabajos cron o un administrador de procesos externo para garantizar que los consumidores estén recuperando mensajes.

Administración de procesos

Los trabajos de Cron son el mecanismo predeterminado para reiniciar a los consumidores. Procesos iniciados por cron consuma el número de mensajes especificado y, a continuación, finalice. Repetición cron reinicia el consumidor.

El siguiente ejemplo muestra el crontab configuración para consumidores en ejecución:

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

...
<job name="consumers_runner" instance="Magento\MessageQueue\Model\Cron\ConsumersRunner" method="run">
    <schedule>* * * * *</schedule>
</job>
...
INFO
La frecuencia con la que se comprueban las colas de mensajes puede depender de la lógica empresarial y de los recursos del sistema disponibles. En general, es posible que desee comprobar si hay nuevos clientes y enviar correos electrónicos de bienvenida con más frecuencia que un proceso que requiera más recursos, como actualizar el catálogo. Debe definir cron programa según sus necesidades comerciales.
Se puede configurar en las opciones de configuración Admin Stores > Settings > Configuration > Advanced > System > Cron para el grupo: consumidores.
Consulte Configurar y ejecutar cron para obtener más información sobre el uso de cron con Commerce.

También puede utilizar un administrador de procesos como Supervisor para supervisar el estado de los procesos. El administrador puede utilizar la línea de comandos para reiniciar los procesos según sea necesario.

Configuración

Comportamiento predeterminado

  • Trabajo cron consumers_runner está habilitado
  • Trabajo cron consumers_runner ejecuta todos los consumidores definidos
  • Cada consumidor procesa 10000 mensajes y, a continuación, finaliza
INFO
Si la tienda de Adobe Commerce está alojada en Cloud Platform, utilice el CRON_CONSUMERS_RUNNER para configurar el consumers_runner trabajo cron.

Configuración específica

Edite el /app/etc/env.php archivo para configurar el trabajo cron consumers_runner.

...
    'cron_consumers_runner' => [
        'cron_run' => false,
        'max_messages' => 20000,
        'consumers' => [
            'consumer1',
            'consumer2',
        ],
        'multiple_processes' => [
            'consumer1' => 4
        ]
    ],
...
  • cron_run - Un valor booleano que habilita o deshabilita la variable consumers_runner trabajo cron (predeterminado = true).

  • max_messages : el número máximo de mensajes que cada consumidor debe procesar antes de finalizar (predeterminado = 10000). Aunque no lo recomendamos, puede utilizar 0 para evitar que el consumidor finalice. Consulte consumers_wait_for_messages para configurar cómo procesan los consumidores los mensajes de la cola de mensajes.

  • consumers : matriz de cadenas que especifica qué consumidores ejecutar. Se ejecuta una matriz vacía todo consumidores.

  • multiple_processes : matriz de pares de clave-valor que especifica qué consumidor se ejecutará en cuántos procesos. Compatible con Commerce 2.4.4 o superior.

    note info
    INFO
    No se recomienda ejecutar varios consumidores en una cola operada por MySQL. Consulte Cambiar la cola de mensajes de MySQL a AMQP para obtener más información.
    note info
    INFO
    Si la tienda de Adobe Commerce está alojada en Cloud Platform, utilice el CONSUMERS_WAIT_FOR_MAX_MESSAGES para configurar cómo procesan los consumidores los mensajes de la cola de mensajes.

Consulte Iniciar consumidores de cola de mensajes.

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