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>
...
cron
de acordo com suas necessidades comerciais.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
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ávelconsumers_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. Consulteconsumers_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.