Propriedade Crons
O Adobe Commerce usa o crons
propriedade para programar atividades repetitivas. É ideal para agendar uma tarefa específica para execução em determinados horários do dia. Somente um trabalho cron pode ser executado de cada vez na instância da Web para projetos do Adobe Commerce na infraestrutura em nuvem devido à natureza dos ambientes somente leitura. É uma prática recomendada dividir tarefas de longa duração em tarefas menores em fila. Como alternativa, você pode criar um instância do trabalhador.
O Adobe recomenda que você execute crons
como o proprietário do sistema de arquivos. Fazer não executar crons
as root
ou como o usuário do servidor Web.
Essa configuração é diferente das implantações locais do Adobe Commerce, que têm vários trabalhos cron padrão. Consulte Configurar trabalhos cron no Guia de configuração.
Configurar trabalhos cron
A variável crons
propriedade descreve processos que são acionados em uma programação. Cada tarefa requer um nome e as seguintes opções:
spec
—A expressão CRON usada para agendamento.cmd
—O comando a ser executado emstart
estop
.shutdown_timeout
—(Opcional) Se uma tarefa cron for cancelada, esse é o número de segundos após o qual um sinal SIGKILL é enviado para interromper a tarefa ou o processo. O padrão é 10 segundos.timeout
—(Opcional) A quantidade máxima de tempo que um trabalho cron pode ser executado antes do tempo limite. O padrão é o valor máximo permitido de 86.400 segundos (24 horas).
Por padrão, cada projeto de nuvem do Commerce tem o seguinte padrão crons
configuração no .magento.app.yaml
arquivo:
crons:
cronrun:
spec: "* * * * *"
cmd: "php bin/magento cron:run"
Se o projeto exigir tarefas cron personalizadas, você poderá adicioná-las ao padrão crons
configuração. Consulte Criar um trabalho cron.
crontab
A Adobe Commerce adicionou uma opção de configuração de autocronagem somente para projetos Pro para oferecer suporte ao autoatendimento crons
configuração nos ambientes de preparo e produção. Se essa opção estiver ativada, você poderá usar crontab
para revisar a configuração do cron. Isso é não disponíveis com projetos iniciais.
Embora você possa usar crontab
para analisar a configuração em projetos Pro, a Adobe Commerce não usa crontab
para executar trabalhos cron para sites implantados na infraestrutura em nuvem.
Para analisar a configuração do cron em ambientes Pro:
-
Uso SSH para fazer logon no ambiente remoto.
-
Liste os processos cron programados.
code language-shell crontab -l
note note NOTE Se a variável crontab -l
comando retorna um valorCommand not found
(somente em ambientes de produção e de armazenamento temporário Pro), você deve Enviar um tíquete de suporte da Adobe Commerce para ativar a opção de configuração de autoatendimento de cronograma automático em seu projeto.
O exemplo a seguir mostra o crontab
saída para um ambiente que tenha somente o padrão crons
configuração:
username@hostname:~$ crontab -l
# Crontab is managed by the system, attempts to edit it directly will fail.
SHELL=/etc/platform/6fck2obu3244c/cron-run
MAILTO=""
# m h dom mon dow job_name
* * * * * cronrun
Criar um trabalho cron
Um trabalho cron inclui a especificação de cronograma e tempo e o comando a ser executado no horário agendado. Para ambientes Starter e Pro integration
ambientes, o intervalo mínimo é uma vez a cada cinco minutos. Para ambientes de preparo e produção profissionais, o intervalo mínimo é de uma vez por minuto. No Adobe Commerce na infraestrutura em nuvem, você adiciona trabalhos cron personalizados à .magento.app.yaml
arquivo no crons
seção. O formato geral é spec
para agendamento e cmd
para especificar o comando ou script personalizado a ser executado.
Especificação
O Adobe Commerce usa uma expressão de cinco valores para uma crons
especificação (spec): * * * * *
- Minuto (0 a 59) Para todos os ambientes Starter e Pro, a frequência mínima com suporte para trabalhos cron é de cinco minutos. Talvez seja necessário definir as configurações em seu Administrador.
- Hora (0 a 23)
- Dia do mês (1 a 31)
- Mês (1 a 12)
- Dia da semana (0 a 6) (de domingo a sábado; 7 também é domingo em alguns sistemas)
Alguns exemplos:
00 */3 * * *
é executado a cada três horas no primeiro minuto (12h, 3h, 6h)20 */8 * * *
é executado a cada 8 horas aos minutos 20 (12:20, 8:20, 16:20)00 00 * * *
é executado uma vez por dia à meia-noite00 * * * 1
O é executado uma vez por semana, na segunda-feira, à meia-noite.
crons
hora especificada no .magento.app.yaml
o arquivo é baseado no fuso horário do servidor, não no fuso horário especificado nos valores de configuração de armazenamento no banco de dados.Ao determinar o agendamento, considere o tempo necessário para concluir a tarefa. Por exemplo, se você executar um job a cada três horas e a tarefa levar 40 minutos para ser concluída, poderá considerar alterar o tempo agendado.
Comando
A variável cmd
especifica o comando ou script personalizado a ser executado. O formato do script de comando pode incluir o seguinte:
<path-to-php-binary> <project-dir>/<script-command>
Por exemplo:
crons:
spec: "00 */8 * * *"
cmd: "/usr/bin/php /app/abc123edf890/bin/magento export:start catalog_category_product"
Neste exemplo, <path-to-php-binary>
é /usr/bin/php
. O diretório de instalação, que inclui a ID do projeto, é /app/abc123edf890/bin/magento
, e a ação de script for export:start catalog_category_product
.
Adicionar trabalhos cron personalizados ao seu projeto
Na plataforma Adobe Commerce na infraestrutura em nuvem, é possível adicionar personalizações à crons
seção do .magento.app.yaml
arquivo.
integration
ambientes, o intervalo mínimo é uma vez a cada cinco minutos. Para ambientes de preparo e produção profissionais, o intervalo mínimo é de uma vez por minuto. Você não pode configurar intervalos mais frequentes do que os mínimos padrão.Em projetos Adobe Commerce Pro, a recurso de autofabricação deve estar habilitado em seu projeto antes que você possa adicionar trabalhos cron personalizados a ambientes de preparo e produção usando o .magento.app.yaml
arquivo. Se esse recurso não estiver ativado, Enviar um tíquete de suporte da Adobe Commerce para ativar os autofônicos.
Para adicionar tarefas cron personalizadas:
-
No ambiente de desenvolvimento local, edite o
.magento.app.yaml
no Adobe Commerce/app
diretório. -
No
crons
adicione sua personalização usando o seguinte formato:code language-yaml crons: <cron_name_1>: spec: "<schedule_time>" cmd: "<schedule_command>" <cron_name_2>: spec: "<schedule_time>" cmd: "<schedule_command>"
No exemplo a seguir, a variável
productcatalog
O trabalho exporta o catálogo de produtos a cada oito horas, 20 minutos após a hora.code language-yaml crons: magento: spec: '* * * * *' cmd: 'php bin/magento cron:run' productcatalog: spec: '20 */8 * * *' cmd: 'bin/magento export:start catalog_product_category'
-
Adicionar, confirmar e enviar alterações de código.
code language-bash git add .magento.app.yaml && git commit -m "cron config updates" && git push origin <branch-name>
Atualizar trabalhos cron
Para adicionar, remover ou atualizar um job personalizado, altere a configuração na crons
seção do .magento.app.yaml
arquivo. Em seguida, teste as atualizações no local remoto integration
antes de enviar as alterações para os ambientes de armazenamento temporário e produção.
Desabilitar trabalhos cron
Você pode desabilitar manualmente os trabalhos cron antes de concluir as tarefas de manutenção, como reindexação ou limpeza do cache para evitar problemas de desempenho. Você pode usar o ece-tools
comando CLI cron:disable
para desativar todos os trabalhos cron e parar quaisquer processos cron ativos.
Para desativar tarefas cron:
-
Na estação de trabalho local, altere para o diretório do projeto.
-
Use o SSH para fazer logon no ambiente remoto.
code language-bash magento-cloud ssh
-
Desative as tarefas cron e interrompa os processos cron ativos.
code language-shell ./vendor/bin/ece-tools cron:disable
-
Após concluir todas as tarefas de manutenção necessárias, certifique-se de habilitar os trabalhos cron novamente.
code language-shell ./vendor/bin/ece-tools cron:enable
Solução de problemas de trabalhos cron
o Adobe atualizou o pacote Adobe Commerce na infraestrutura em nuvem para otimizar o processamento de cron na plataforma Adobe Commerce na infraestrutura em nuvem e para corrigir problemas relacionados ao cron. Se você encontrar problemas com o processamento de cron, verifique se seu projeto está usando a versão mais recente do ece-tools
pacote. Consulte Atualizar ECE-Tools.
Você pode revisar as informações de processamento do CRON nos arquivos de log no nível do aplicativo para cada ambiente. Consulte Logs do aplicativo.
Consulte os seguintes artigos de suporte da Adobe Commerce para obter ajuda com a solução de problemas relacionados ao cron: