iControlWP

Neste artigo, explicamos:

  • O que é o WP Cron?
  • Como funciona?
  • Por que falha?
  • Que problemas os erros do WP Cron causam?
  • Como corrigir o WP Cron?

Então, vamos começar…

O que é o WP Cron?

Cron é um comando UNIX para agendamento de trabalhos a serem executados em algum momento no futuro. É normalmente usado para agendar um trabalho que é executado periodicamente.

WordPress usa um arquivo chamado wp-cron.php como um cron job virtual, ou tarefa agendada a fim de automatizar coisas como

  • publicação de posts agendados
  • verificação de atualizações de plugins ou temas
  • enviar notificações por e-mail
  • backing up
  • Atualizações automáticas WordPress
  • …. e assim por diante.

Como funciona?

Em cada carregamento de página, o WordPress verifica se existe a necessidade de executar o WP Cron. Se houver necessidade, então ele tenta fazer uma requisição sobre HTTP para o arquivo wp-cron.php.

Chamar este arquivo ajuda a manter o WP Cron rodando como um processo separado em segundo plano sem atrasar o tempo de carregamento da página para o usuário. Uma vez iniciado o WP Cron, ele continua rodando até que todos os trabalhos necessários estejam concluídos ou até que ele atinja um tempo de execução conforme definido na configuração do servidor.

É importante explicar que, em sua configuração padrão, o WordPress não usa um trabalho cron real para agendamento e outras tarefas relacionadas. Em vez disso, sempre que uma página é carregada em um site WordPress, o WordPress executa o arquivo wp-cron.php. Ele basicamente pergunta “é hora de fazer alguma coisa ainda?”.

Se houver alguma tarefa agendada no momento do carregamento da página, ela será executada. Mas, deve ser notado aqui que o WP Cron não roda constantemente como o cron do sistema.

WP Cron só será acionado no carregamento da página – ou seja, quando alguém visitar uma página no seu site. Isto significa que, por exemplo, se você tiver uma tarefa agendada para as 16:00 mas não tiver nenhum visitante até as 22:00, sua tarefa não será executada até lá.

Note: Às vezes você pode ver URLs com ?doing_wp_cron= seguido por uma seqüência de números.

>Por exemplo:

https://example.com/what-is-wp-cron-article?doing_wp_cron=123456.874251298799871371475

Isso acontece porque, a fim de fazer algum processamento de fundo (como publicar posts agendados), o WordPress redireciona você para a URL com ?fazendo_wp_cron anexado.

Leia mais sobre isso aqui.

Por que falha?

Então, quando alguém aterrissa em qualquer página do seu site WordPress, o wp-cron.php poderia disparar e verificar se ele precisa enviar alguma coisa

Em muitos hosts WordPress, isto irá funcionar como pretendido. Mas, alguns hosts desabilitam essa funcionalidade de rodar porque isso significa que grandes números de visitantes podem disparar os cron jobs virtuais muitas vezes, usando os recursos do seu servidor. É também uma potencial vulnerabilidade de segurança.

Outra razão é que alguns plugins e temas podem causar erros fatais durante o processamento do cron (pois podem não ter sido testados corretamente) e isto irá quebrar a execução do processo cron.

Dica: Embora não seja conclusivo e sirva apenas como um ponteiro no caso de problemas maiores, no Painel de Segurança para Escudo há uma entrada na secção “Registo de Eventos Recentes” para mostrar a última vez que o cron simples teste correu:

Isso dir-lhe-ia se os seus crons estão, em geral, a funcionar ou não. Isso não significa que todos os seus crons estão funcionando, mas significa que seu sistema WP Cron está provavelmente OK.

Note: Você pode acionar o WP Cron manualmente. A primeira coisa a fazer é construir o link, e isto é como fazer isso:

  1. Take your admin URL, e.g. example.com/wp-admin/
  2. Replace “/wp-admin/” with “/wp-cron.php?setcronjob”

O link terá o seguinte aspecto:

example.com/wp-cron.php?setcronjob

Apenas abra esse link em uma aba separada e o WP Cron será acionado.

Que problemas os erros do WP Cron causam?

Se o cron estiver quebrando, não está funcionando corretamente:

  • Atualizações automáticas do WP Cron não serão executadas
  • A verificação de atualizações de plugins ou temas falhará
  • Os posts de cron não serão publicados
  • Se o WordPress não usar um cron real para agendamento e outras tarefas relacionadas, notificações por e-mail, renovações automáticas, cobranças de faturamento, notificações de entrada/saída de estoque falharão.
  • O backup do site falhará para plugins de backup que dependem do cron

Também,

  • Pode haver um longo atraso entre as atualizações lançadas e as atualizações instaladas
  • Plugins de premium não possuem um link correto no código de atualização

    Certos plugins premium não testaram seu código de atualização personalizado com o cron do WordPress. Isto significa que quando o cron é executado, seu código de atualização não funciona e as atualizações automáticas dos ativos premium falharão.

Estes são apenas alguns dos problemas mais notáveis que vimos.

Por favor note que, se o cron não estiver funcionando, todas as tarefas automáticas falharão.

Como corrigir o WP Cron

O WP Cron pode ser problemático e estreitar onde um cron está a falhar é um trabalho complicado.

Recomendamos vivamente que leia este artigo aqui.

Você também pode ler:

  • Porque as actualizações automáticas do WordPress não funcionam sempre?

Leave a Reply