Propriedade dos trabalhadores
Você pode definir um trabalhador para ser executado independentemente da instância da Web sem uma instância do Nginx em execução; no entanto, o trabalhador usa o mesmo armazenamento de rede usado pelo aplicativo Commerce. Você não precisa configurar um servidor Web na instância do worker (usando Node.js ou Go) porque o roteador não pode direcionar solicitações públicas ao worker. Isso torna a instância do trabalhador ideal para tarefas em segundo plano ou tarefas em execução continuamente que correm o risco de bloquear uma implantação.
Configurar um trabalhador
Os funcionários estão disponíveis para uso somente com ambientes de preparo e produção profissionais. Os ambientes de integração Pro e Starter podem optar por usar a variável CRON_CONSUMERS_RUNNER.
Para configurar um trabalhador no Pro Staging ou na Produção, Envie um tíquete de Suporte da Adobe Commerce e inclua as seguintes informações:
- ID do projeto
- ID do ambiente
- Nome do trabalhador
- Comandos Start
É possível configurar um processo por trabalhador. Uma configuração básica de trabalho comum no arquivo .magento.app.yaml
pode ser semelhante ao seguinte:
workers:
queue:
commands:
start: |
php ./bin/magento queue:consumers:start commerce.eventing.event.publish
Este exemplo define um único trabalhador chamado queue
, com um pequeno nível (tamanho S) de alocação de recursos, e executa o comando php ./bin/magento
na inicialização. O trabalhador queue
é executado em cada nó como um processo de trabalho. Se o comando for encerrado, ele será reiniciado automaticamente.
Comandos e substituições
A chave commands.start
é necessária para iniciar comandos com o aplicativo de trabalho. Você pode usar qualquer comando shell válido, embora seja ideal usar o idioma do aplicativo. Se o comando especificado pela chave start
for encerrado, ele será reiniciado automaticamente.
deploy
e post_deploy
e os comandos crons
são executados somente no contêiner da Web, não em instâncias de trabalho.Herança
As definições das propriedades size
, relationships
, access
, disk
e mount
e variables
são herdadas por um trabalhador, a menos que sejam explicitamente substituídas.
As propriedades a seguir são as mais usadas para substituir configurações de nível superior:
size
—alocar menos recursos para um único processo em segundo planovariables
—instrui o aplicativo a ser executado de forma diferente
Tempo e enfileiramento
Embora cada operador enfileire atrás de outro, a configuração a seguir produz uma separação consistente de dois segundos nos carimbos de data e hora no arquivo var/time.txt
, independentemente da espera de oito segundos no código PHP:
workers:
time1:
commands:
start: 'php -r "sleep(8); echo time() . PHP_EOL;" >> var/time.txt& sleep 2'