As tarefas CRON são utilizadas para agendar tarefas em horários, datas ou intervalos fixos e periódicos em seu site WordPress. Alguns exemplos de tarefa cron no WordPress podem envolver o agendamento de uma publicação, a verificação de atualizações ou um plugin de backup em execução em um calendário predefinido.
No WordPress, isso é feito pelo WP-Cron, que é utilizado para simular um sistema cron. Contudo, dependendo da quantidade de tráfego do seu site, o uso do gerenciador cron integrado pode impactar os tempos de carregamento da sua página. Por isso, hoje iremos mostrar como desativar o WP-Cron (wp-cron.php
), utilizando em substituição um sistema cron para ter um desempenho mais rápido.
Problemas de Desempenho com o WP-Cron
Na Kinsta, lidamos com sites muitos exigentes e com elevado tráfego. Por causa disso, já encontrámos muitos problemas de desempenho com o gerenciador Cron interno do WordPress: o WP-Cron. Em primeiro lugar, é importante entender que o WP-Cron não é uma verdadeira tarefa cron, é simplesmente o que o WordPress criou para imitar o que um sistema cron faz.
O WP-Cron não é executado continuamente. Por padrão, o wp-cron.php
é acionado em cada carregamento de página, o que, em sites de alto tráfego, pode provocar problemas. Se um site não tiver PHP Workers suficientes, por vezes surgirá uma solicitação, o WordPress gerará o cron , mas o cron terá de esperar pelo funcionário e, por isso, se limita a ficar estático.
O cenário inverso também é verdadeiro. Se um site tiver um tráfego reduzido, os agendamentos poderão ser perdidos por ninguém ter carregado uma página.
Uma abordagem melhor é desativar o WP-Cron e usar o sistema. Isso é executado em um horário predefinido e é até mesmo recomendado no manual de plugins.
Como Desativar o WP-Cron
Para desativar o WP-Cron, adicione isso ao seu arquivo wp-config.php
logo antes da linha que diz: “That’s all, stop editing! Happy blogging.” Nota: Isso impede que ele seja executado no carregamento da página, não quando você o requere diretamente via wp-cron.php
.
define ('DISABLE_WP_CRON', true);
Como Agendar o Sistema Cron
Depois precisará de agendar o wp-cron.php
no seu servidor.
Caso seu site seja multisite, há algumas etapas extras de configuração que você precisará tomar para que os trabalhos de cron sejam executados para seus subsites. Aqui estão alguns recursos que podemos recomendar para isso:
- Configurar Corretamente as Tarefas Cron no WordPress
- Usar o WP CLI para Executar Tarefas Cron em Redes Multisite
Para um único site WordPress, a grande notícia é que se você for um cliente Kinsta, nosso cron do lado do servidor aciona o wp-cron.php
a cada 15 minutos, por padrão. 💪 Isto executará qualquer cron cron WordPress programado. E se necessário, você pode aumentar a frequência, alcançando nossa equipe de suporte.
Se você está familiarizado com SSH, você também pode seguir nosso tutorial sobre como gerenciar os crons de servidor a partir da linha de comando na Kinsta. Todos os nossos planos de hospedagem incluem acesso SSH.
Se você não é um cliente Kinsta, recomendamos que você verifique a configuração adequada do WordPress Cron Jobs para aprender como configurar os crons do sistema.
Criar Tarefa Cron no cPanel
Se estiver usando um host com o cPanel, poderá também criar um sistema cron no painel de controle. Nota: primeiro desative o WP-Cron padrão.
Passo 1
Entre no cPanel. Na seção Avançado, clique em Tarefas Cron.
Passo 2
Na seção Adicionar Nova Tarefa Cron, pode escolher vários agendamentos predefinidos, como duas vezes por hora ou uma vez por semana. Provavelmente, o seu provedor de hospedagem tem um limite para a frequência de execução de tarefas cron. Duas vezes por hora é comum para hosts compartilhados.
Passo 3
Adicione esse comando. Substitua https://domain.com
pelo seu nome de domínio. Esse comando pode variar ligeiramente com base na forma como a sua hospedagem está configurada. Depois clique em “Adicionar Nova Tarefa Cron”.
wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
A parte >/dev/null 2>&1
do comando acima desativa as notificações por email.
Programar Crons com uma Solução de Terceiros
Se não estiver confortável para agendar tarefas no seu servidor ou se seu provedor de hospedagem não faculta esse acesso, poderá também usar uma solução de terceiros, como o EasyCron.