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. 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_runner
habilitado - O trabalho Cron
consumers_runner
executa 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_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 do MySQL para AMQP para obter mais informações. 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.
Consulte Iniciar consumidores da fila de mensagens.