Propriedade Crons
O Adobe Commerce usa a propriedade crons
para agendar 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 uma instância do trabalhador.
A Adobe recomenda que você execute crons
como o proprietário do sistema de arquivos. não execute crons
como 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 propriedade crons
descreve processos que são acionados de acordo com um agendamento. 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 um trabalho cron for cancelado, esse será o número de segundos após o qual um sinal SIGKILL será enviado para interromper o trabalho ou 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 a seguinte configuração crons
padrão no arquivo .magento.app.yaml
:
crons:
cronrun:
spec: "* * * * *"
cmd: "php bin/magento cron:run"
Se o seu projeto requer trabalhos cron personalizados, você pode adicioná-los à configuração padrão crons
. Consulte Criar um trabalho cron.
crontab
A Adobe Commerce adicionou uma opção de configuração de autocronagem somente a projetos Pro para oferecer suporte à configuração de autoatendimento crons
nos ambientes de Preparo e Produção. Se esta opção estiver habilitada, você poderá usar crontab
para revisar a configuração do cron. Isto não está disponível com projetos iniciais.
Embora você possa usar o crontab
para revisar a configuração em projetos Pro, a Adobe Commerce não usa o crontab
para executar trabalhos cron para sites implantados na infraestrutura em nuvem.
Para revisar a configuração do cron em ambientes Pro:
-
Use o SSH para fazer logon no ambiente remoto.
-
Liste os processos cron programados.
code language-shell crontab -l
note note NOTE Se o comando crontab -l
retornar um erroCommand not found
(somente em ambientes de Preparo e Produção Pro), você deverá enviar um tíquete de Suporte da Adobe Commerce para habilitar a opção de configuração de autoatendimento de cronograma automático em seu projeto.
O exemplo a seguir mostra a saída crontab
para um ambiente que tem apenas a configuração crons
padrã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
, 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 ao arquivo .magento.app.yaml
na seção crons
. 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 especificação crons
(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:
- O
00 */3 * * *
é executado a cada três horas no primeiro minuto (12h, 3h, 6h) - O
20 */8 * * *
é executado a cada 8 horas aos minutos 20 (12:20, 8:20, 16:20) 00 00 * * *
é executado uma vez por dia à meia-noite- O
00 * * * 1
é executado uma vez por semana, às segundas-feiras à meia-noite.
crons
especificada no arquivo .magento.app.yaml
é baseada no fuso horário do servidor, não no fuso horário especificado nos valores de configuração de repositório 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
O 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 do script é 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 à seção crons
do arquivo .magento.app.yaml
.
integration
, 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 do Adobe Commerce Pro, o recurso de autcrons deve estar habilitado no seu projeto antes que você possa adicionar trabalhos cron personalizados a ambientes de Preparo e Produção usando o arquivo .magento.app.yaml
. Se este recurso não estiver habilitado, Envie um tíquete de Suporte da Adobe Commerce para habilitar o autocronismo.
Para adicionar trabalhos cron personalizados:
-
No ambiente de desenvolvimento local, edite o arquivo
.magento.app.yaml
no diretório/app
do Adobe Commerce. -
Na seção
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, o trabalho
productcatalog
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 trabalho personalizado, altere a configuração na seção crons
do arquivo .magento.app.yaml
. Em seguida, teste as atualizações no ambiente remoto integration
antes de enviar as alterações para os ambientes de Preparo 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 comando cron:disable
da CLI ece-tools
para desabilitar todos os trabalhos cron e parar quaisquer processos cron ativos.
Para desabilitar os trabalhos 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 CRON, verifique se seu projeto está usando a versão mais recente do pacote ece-tools
. 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: