Dec 17, 2024
Bruna
7min Ler
Um Cron Job é uma utilidade UNIX que possibilita ao usuário rodar tarefas programadas em um servidor web. O WordPress possui seu próprio sistema de cron jobs, chamado WP-Cron. Essa ferramenta simula o sistema cron UNIX para automatizar verificações e atualizações, publicações de posts, e outras tarefas repetitivas ou recorrentes em um site.
Se você é um usuário do WordPress, saber como agendar eventos com o WP cron pode facilitar a execução de suas tarefas administrativas.
Este artigo vai te explicar como configurar e gerenciar o sistema de cron jobs do WordPress, com um plugin e através do WP-CLI. Você também vai descobrir quais as vantagens e as desvantagens de utilizar este sistema cron do WordPress e como ele se diferencia de um tradicional sistema UNIX de cron jobs.
Cron jobs do WordPress são um sistema que simula a ferramenta cron UNIX para automatizar o agendamento de tarefas com intervalos de tempo determinados. O sistema cron do WordPress permite que seus usuários realizem tarefas referentes ao site de forma programada e em um momento específico, como publicar posts agendados e verificar atualizações necessárias.
O sistema WP-Cron é fácil de ser configurado, pois diferentemente do cron job UNIX, ele não exige conhecimentos técnicos de comandos UNIX. Vários plugins do WordPress contam com recursos que simplificam os processos de configuração e gerenciamento de cron jobs, tornando o sistema acessível até mesmo para quem está começando nessa área.
Ao permitir que você programe tarefas repetitivas para que sejam realizadas em um intervalo de tempo personalizado, você consegue poupar tempo e energia para gastar em outras funções essenciais da administração do site. Adicionalmente, este sistema garante que você não perderá nenhum dado ou informação caso a tarefa agendada não seja executada no momento certo — sendo esta uma característica que não está presente no sistema cron UNIX.
Infelizmente, o WP_Cron roda apenas quando um usuário visita seu site. Sendo assim, sites WordPress com pouco tráfego podem acabar pulando algumas tarefas cron caso nenhum visitante acione o carregamento das páginas.
Isso pode causar um acúmulo de cache pendente, o que pode prejudicar o tempo de carregamento e o desempenho do site.
Atrair tráfego para seu site pode não resolver o problema. Na verdade, sites com alto tráfego e que utilizam cron jobs estão suscetíveis a condições de corrida e processos de longa duração.
Condições de corrida, ou race conditions, acontecem quando múltiplos visitantes acessam o site ao mesmo tempo, acionando o WP-Cron para que execute a mesma tarefa várias vezes e simultaneamente. Isso acaba gerando uma fila de tarefas pendentes, resultando em um desempenho mais lento.
O jeito mais fácil de configurar e gerenciar cron jobs do WordPress envolve a utilização de um plugin de cron job. Neste tutorial vamos utilizar o WP Crontrol, já que ele é gratuito, possui versão traduzida para o português e conta com todos os recursos necessários para o agendamento e execução das tarefas programadas.
De todo modo, fique à vontade para utilizar outro plugin caso ele atenda melhor às suas necessidades.
Primeiramente, instale e ative o plugin do WordPress para administrar cron jobs. Você pode seguir estes passos:
Para ver todos os cron jobs que estão rodando em seu site WordPress, acesse a seção Ferramentas → Eventos Cron a partir do seu painel de administração WP.

Importante! Não delete nenhum cron job que já vier configurado por padrão no WordPress (eles possuem o prefixo wp). Caso exclua algum desses cron jobs, as principais funcionalidades do seu site, ligadas ao núcleo da instalação WordPress, serão desconfiguradas.
Agora que já é possível controlar cron jobs do WordPress através do plugin recém-instalado em seu site, você pode começar a gerenciar estas funcionalidades. Abaixo está o passo-a-passo de como criar um novo evento cron:




add_action( 'hostinger_custom_cron', 'hostinger_custom_cron_func' );
function hostinger_custom_cron_func() {
wp_mail( 'seuemail@exemplo.com.br', 'Automatic email', 'Automatic scheduled email from WordPress to test cron');
}
Este exemplo utiliza a função wp_mail(), que aciona o WordPress para que o sistema envie um e-mail quando o evento cron rodar no site. Não se esqueça de substituir seuemail@exemplo.com.br por um endereço de e-mail real.

O plugin oferece quatro opções-padrão de intervalo de tempo para você escolher a recorrência de seu evento cron, mas é possível configurar intervalos de tempo personalizados caso o usuário deseje. Siga os passos indicado abaixo para adicionar um novo agendamento de cron job:


Agora que já criamos um intervalo de tempo determinado para recorrência, vamos utilizá-lo com o cron job personalizado. Abaixo estão descritos os passos para modificar um cron job que já existe:

Outra maneira de configurar um cron job WordPress envolve a utilização do WP-CLI. Esta ferramenta te permite gerenciar o site através de uma interface de linhas de comando.
Os servidores de hospedagem da Hostinger (com exceção do plano de Hospedagem Compartilhada Single) já vêm com a função WP-CLI pré-instalada. Sendo assim, você só precisará conectá-la à sua conta de hospedagem utilizando o Putty SSH.
Uma vez já conectado à sua conta de hospedagem via SSH, para acessar os cron jobs existentes, digite este comando no terminal:
wp cron event list
A linha de comando indicado abaixo irá exibir ainda outros comandos que você pode utilizar com o WP-CLI:
wp help
O WordPress cria e armazena scripts WP-Cron dentro do arquivo wp-cron.php. Por mais que este arquivo permita que seu site tenha cron jobs configurados (e rodando normalmente independente do sistema operacional), ele não é imune a ataques e pode entrar em conflito com plugins de cache.
O uso de cron jobs reais pode eliminar a execução constante do script deste arquivo.
Antes de configurar um cron job real, você precisará desabilitar a tarefa cron padrão do WordPress. Isso pode ser feito de forma simples, através da adição de uma linha de código no seu arquivo wp-config.php. Acima da linha “/* That’s all, stop editing! Happy blogging. */” insira este código:
define( 'DISABLE_WP_CRON', true );
O próximo passo é configurar um cron job real para executar tarefas centrais do WordPress, ligadas ao núcleo estrutural do site. Esse processo pode variar dependendo do seu provedor ou serviço de hospedagem. Se você é um usuário da Hostinger, siga os passos descritos abaixo:
wget -q -O - https://domain.tld/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Não se esqueça de substituir domain.tld pela verdadeira URL do seu site.


O sistema de cron jobs do WordPress facilita o agendamento de tarefas em intervalos de tempo específicos. Apesar do WP-Cron possuir algumas desvantagens, saber como utilizar esta funcionalidade permite que você execute as tarefas administrativas do site de forma mais eficiente.
Esperamos que este artigo tenha te ajudado a entender melhor o que é o recurso de cron jobs do WordPress e como configurá-lo através de um plugin como o WP Control, ou do WP-CLI. Boa sorte na sua jornada!
Se você está buscando otimizar o desempenho do seu site ainda mais, recomendamos utilizar uma hospedagem WordPress de alta qualidade. Encontre a sua aqui mesmo na Hostinger.
O WP-Cron é um sistema de cron jobs do WordPress que é baseado em web e simula o sistema cron UNIX padrão. Sendo assim, os eventos WP-Cron são acionados apenas a partir do carregamento da página (quando alguém acessa o site), enquanto um cron job real roda a qualquer momento (independente de possuir ou não visitantes no site).
O WP-Cron funciona perfeitamente para aquilo que se propõe, que é rodar tarefas centrais do WordPress de forma automática. Entretanto, utilizar os cron jobs do WordPress para executar tarefas adicionais pode prejudicar a velocidade de carregamento das páginas do seu site. Sendo assim, recomendamos utilizar cron jobs reais nesses casos, para garantir um melhor desempenho.
Se você possui cron jobs configurados e não utilizados, a melhor solução seria deletá-los. Alternativamente, você pode modificar o intervalo de tempo em que o evento acontece, alterando a recorrência da tarefa de acordo com o que necessita.
Rode o comando indicado abaixo para deletar cron jobs que utilizem um hook específico. Este método é ideal para remover cron jobs obsoletos.
$ wp cron event delete hook_name
Todo o conteúdo dos tutoriais deste site segue os rigorosos padrões editoriais e valores da Hostinger.