[Somente PaaS]{class="badge informative" title="Aplica-se somente a projetos do Adobe Commerce na nuvem (infraestrutura do PaaS gerenciada pela Adobe) e a projetos locais."}

Gerenciar filas de mensagens

Você pode gerenciar filas de mensagens a partir da linha de comando usando tarefas cron ou um gerenciador de processo externo para garantir que os consumidores estejam recuperando mensagens. Isso se aplica a todos os agentes de mensagem compatíveis, incluindo RabbitMQ (AMQP), Apache AtiveMQ Artemis (STOMP) e o adaptador MySQL.

Gerenciamento de processos

Os trabalhos do Cron são o mecanismo padrão para reiniciar os consumidores. Processos iniciados por cron consomem o número especificado de mensagens e terminam. Executar novamente cron reinicia o consumidor.

O exemplo a seguir mostra a configuração crontab para consumidores em execução:

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

...
<job name="consumers_runner" instance="Magento\MessageQueue\Model\Cron\ConsumersRunner" method="run">
    <schedule>* * * * *</schedule>
</job>
...
INFO
A frequência com que você verifica as filas de mensagens pode depender da lógica de negócios e dos recursos de sistema disponíveis. Em geral, você pode verificar se há novos clientes e enviar emails de boas-vindas com mais frequência do que um processo que consome mais recursos, como a atualização do catálogo. Você deve definir cron agendamentos de acordo com suas necessidades comerciais.
Ele pode ser configurado nas Admin Stores > Settings > Configuration > Advanced > System > Cron configuration options for group: consumer.
Consulte Configurar e executar o cron para obter mais informações sobre como usar o cron com o Commerce.

Você também pode usar um gerenciador de processos, como o Supervisor, para monitorar o status dos processos. O gerenciador pode usar a linha de comando para reiniciar os processos conforme necessário.

Configuração

Comportamento por padrão

  • Trabalho Cron consumers_runner habilitado
  • O trabalho Cron consumers_runner executa todos os consumidores definidos
  • Cada consumidor processa 10.000 mensagens e depois finaliza
INFO
Se sua loja da Adobe Commerce estiver hospedada na plataforma Cloud, use o CRON_CONSUMERS_RUNNER para configurar o trabalho cron do consumers_runner.

Configuração específica

Edite o arquivo /app/etc/env.php para configurar o trabalho cron consumers_runner.

...
    'cron_consumers_runner' => [
        'cron_run' => false,
        'max_messages' => 20000,
        'consumers' => [
            'consumer1',
            'consumer2',
        ],
        'multiple_processes' => [
            'consumer1' => 4
        ]
    ],
...
  • cron_run - Um valor booleano que habilita ou desabilita o trabalho cron consumers_runner (padrão = true).

  • max_messages - O número máximo de mensagens que cada consumidor deve processar antes de terminar (padrão = 10000). Embora não o recomendemos, você pode usar 0 para impedir que o consumidor seja encerrado. Consulte consumers_wait_for_messages para configurar como os consumidores processam mensagens da fila de mensagens.

  • consumers - Uma matriz de cadeias de caracteres especificando quais consumidores executar. Uma matriz vazia executa todos consumidores.

  • multiple_processes - Uma matriz de pares de valores chave especificando qual consumidor executar em quantos processos. Compatível com o Commerce 2.4.4 ou superior.

    note info
    INFO
    Não é recomendável executar vários consumidores em uma fila operada pelo MySQL. Consulte Alterar fila de mensagens de MySQL para agentes externos para obter mais informações sobre como alternar para AMQP (RabbitMQ) ou STOMP (AtiveMQ Artemis).
    note info
    INFO
    Se o armazenamento do Adobe Commerce estiver hospedado na plataforma de nuvem, use o CONSUMERS_WAIT_FOR_MAX_MESSAGES para configurar como os consumidores processam mensagens da fila de mensagens.
    note note
    NOTE
    O AtiveMQ Artemis (STOMP) foi introduzido no Adobe Commerce 2.4.6 e versões posteriores.

Consulte Iniciar consumidores da fila de mensagens.

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