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>
...
cron agendamentos de acordo com suas necessidades comerciais.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_runnerhabilitado - O trabalho Cron
consumers_runnerexecuta todos os consumidores definidos - Cada consumidor processa 10.000 mensagens e depois finaliza
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 cronconsumers_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. Consulteconsumers_wait_for_messagespara 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_MESSAGESpara 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.