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.

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. Executando novamente cron reinicia o consumidor.

O exemplo a seguir mostra o crontab configuração 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 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.

Também é possível usar um gerenciador de processos, como 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 está ativado
  • 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 da Cloud, use o CRON_CONSUMERS_RUNNER para configurar o consumers_runner trabalho cron.

Configuração específica

Edite o /app/etc/env.php arquivo 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 ativa ou desativa a variável consumers_runner trabalho cron (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 strings especificando quais consumidores executar. Uma matriz vazia é executada all consumidores.

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

    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 AMQP para obter mais informações.
    note info
    INFO
    Se sua loja da Adobe Commerce estiver hospedada na plataforma da Cloud, use o CONSUMERS_WAIT_FOR_MAX_MESSAGES para configurar como os consumidores processam mensagens da fila de mensagens.

Consulte Iniciar consumidores da fila de mensagens.

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