0 Compartilhamentos 194 Views

Assumindo o controle das tarefas agendadas no WordPress (wp-cron)

6 de fevereiro de 2015

Se você possui um site ou blog em WordPress, é bem provável que um pequeno arquivo do CMS esteja contribuindo para reduzir o desempenho do servidor. O ótimo sistema da Automattic possui um arquivo chamado “wp-cron.php”, o qual é responsável pela execução de uma série de tarefas.

Tal arquivo faz com que uma série de ações sejam automatizadas. É ele o responsável, por exemplo, pela realização de backups, pelas notificações de novas versões, pelo envio de e-mails, pela publicação automática de posts que foram agendados, etc. Quando você agenda determina publicação para ir ao ar em determinado dia e horário, saiba que o “wp-cron.php” será o responsável por tal evento.

O grande problema é que este arquivo (e suas execuções) pode acabar consumindo recursos do servidor em demasia. Ele pode acabar fazendo com que sites fiquem lentos, pode aumentar o load no servidor, pode, enfim, causar uma série de problemas.

WordPress

Isto porque ele é executado sempre que o site é acessado. Sempre, também, que algo no painel de administração é alterado. Pense nisto, e agora imagine um servidor não lá muito “parrudo”  e/ou mal otimizado. Junte a isto um ou diversos sites com alta visitação na mesma máquina.

É fácil perceber que o “wp-cron.php” pode se transformar em um grande problema (a utilização deste recurso, aliás, pode até mesmo ser desnecessária, dependendo da situação), gastando memória e processamento em excesso, sem necessidade.

Desabilitando o “wp-cron.php” do WordPress

Existe, entretanto, uma solução. Podemos “desligar” o recurso. Podemos desabilitar a execução automática do “wp-cron.php”. Podemos assumir o controle, aqui, e rodar o script quando bem desejarmos. Veja abaixo como fazer:

OBS: é importante lembrar que o arquivo “wp-cron.php” fica dentro da pasta raiz do WordPress.

1) Localize o arquivo “wp-config.php” do WordPress (também na pasta raiz do CMS). Baixe-o para seu computador e abra-o com um editor de textos qualquer, como por exemplo o Notepad ou o PSPad;

2) Com o arquivo aberto, localize a sessão onde são especificados os detalhes do banco de dados em utilização. Algo mais ou menos semelhante ao trecho abaixo:

O código que iremos utilizar para desabilitar o “wp-cron.php” deve ser inserido logo após os dados do banco de dados. No exemplo acima, então, logo abaixo de “define(‘DB_COLLATE’, ”);”.

Portanto, agora que você já sabe o ponto correto de inserção, insira o código, o qual segue abaixo:

3) Salve o arquivo “wp-config.php” que acabou de editar e o envie de volta para o servidor, substituindo o que aí se encontra;

Criando uma cronjob para rodar o “wp-cron.php”

O fato de termos desabilitado o wp-cron não significa, entretanto, que ele não é útil, que ele não deve mais ser utilizado. Nós apenas estamos assumindo o controle, para evitar sobrecargas no servidor, lentidões, etc.

Nós desativamos sua execução automática, porém, ele ainda deve ser usado para a execução das tarefas que mencionamos acima. Apenas, com menos frequência. Então, vamos criar uma cronjob, ou seja, vamos realizar um agendamento para que o servidor execute o arquivo de tempos em tempos.

Quanto tempo? Isto depende bastante. Caso seu site não tenha muitos visitantes, caso você poste em seu blog apenas duas ou três vezes por semana, por exemplo, a frequência com que o “wp-cron.php” deve ser “chamado” pode ser bem menor.

Mas vamos aqui considerar um site com uma visitação razoável. Um intervalo de 15 ou 20 minutos, ou até mesmo meia hora, quarenta minutos (ou um pouco mais), entre cada execução, por exemplo, pode ajudar bastante.

O que vamos fazer, ressaltando novamente, é criar uma cronjob para automatizar a execução do wp-cron de acordo com o intervalo de tempo desejado, certamente bastante inferior ao modo automático.

Painéis de controle de hospedagem como o Cpanel, por exemplo, geralmente contam com ferramentas que permitem a criação destas tarefas agendadas de forma bastante simples, incluindo menus dropdown que deixam o usuário informar “horas”, “minutos”, “dias”, “meses”, etc, de forma totalmente visual. Algo bastante intuitivo.

Cpanel - Cronjob

Vamos assumir que desejamos rodar o arquivo a cada 30 minutos. Basta informarmos tal intervalo e o respectivo comando, no campo “command“. Confira o comando:

Agora veja um exemplo de como o painel de controle exibirá a cronjob, após sua criação, com a respectiva informação relativa aos 30 minutos:

Lembre-se de alterar “/home/usuario_site/public_html/” de acordo com suas necessidades, com o caminho para a pasta onde o WordPress está instalado, etc. Por exemplo, “/home/codigofonte/public_html/” (no caso de codigofonte.com.br). E assim por diante.

Via SSH: criando uma cronjob para rodar o “wp-cron.php”

Todo o procedimento acima também pode ser realizado através do SSH. É ainda mais simples e rápido. Veja:

1) Logado no servidor via SSH, digite o comando abaixo e tecle <ENTER>:

Isto permitirá que você edite a crontab. Após a abertura, digite o comando, na última linha (lembre-se de sempre realizar as alterações nos caminhos conforme suas necessidades, conforme explicado acima):

Crontab - SSH

Para salvar a crontab, no shell, tecle CTRL+X e confirme com “Y” (Yes).

Você pode também desejar adicionar a tarefa apenas para o usuário da conta em questão. No exemplo acima, realizamos o procedimento após logarmos no servidor como root. Mas também podemos fazer o mesmo para cada um dos usuários, para cada uma das contas/domínios/sites.

Faça login no SSH com os dados do(s) usuário(s) desejado(s). Caso já esteja logado, como root, troque para o usuário, usando o seguinte comando (seguido de um <ENTER>):

Lembre-se de alterar “usuário” pela informação correta. Por exemplo:

Onde “codigofonte” é o usuário da conta em questão

Com a crontab em tela, digite o comando completo, exatamente igual ao que fizemos acima:

Salve, como explicado acima, e pronto.

Após realizar este procedimento no SSH, você pode até mesmo conferir no painel de controle (Cpanel, por exemplo): a tarefa estará lá, criada, corretamente, apenas para o usuário que especificamos acima.

Finalizando

É extremamente importante “domar” o wp-cron, como explicamos acima. Assim, você é capaz de evitar uma série de dores de cabeça, incluindo loads altos. Mais adiante publicaremos um outro artigo, com mais dicas relacionadas a este assunto.

Você pode se interessar

Promoções de Jogos do Final de Semana (20/09)
Notícias
6 visualizações
Notícias
6 visualizações

Promoções de Jogos do Final de Semana (20/09)

Carlos L. A. da Silva - 21 de setembro de 2019

Confira as melhores ofertas de jogos de PC para o final de semana.

Como enlouquecer os rastreadores de internet
Dicas
9 visualizações
Dicas
9 visualizações

Como enlouquecer os rastreadores de internet

Carlos L. A. da Silva - 18 de setembro de 2019

Track This é um experimento criado pelo time do Firefox que vai alterar completamente o perfil que os anunciantes tem de você.

A história de Amazônia, o primeiro jogo brasileiro!
Artigos
9 visualizações
Artigos
9 visualizações

A história de Amazônia, o primeiro jogo brasileiro!

Carlos L. A. da Silva - 17 de setembro de 2019

Como um programador iniciante criou um adventure clássico que atravessou décadas.

Mais publicações

VIM (Amado ou Odiado?) // Dicionário do Programador
Vídeos
6 visualizações
6 visualizações

VIM (Amado ou Odiado?) // Dicionário do Programador

Thais Cardoso de Mello - 16 de setembro de 2019
Promoções de Jogos do Final de Semana (13/09)
Notícias
10 visualizações
10 visualizações

Promoções de Jogos do Final de Semana (13/09)

Carlos L. A. da Silva - 13 de setembro de 2019
Como usar os novos atributos de link do Google
Dicas
11 visualizações
11 visualizações

Como usar os novos atributos de link do Google

Carlos L. A. da Silva - 11 de setembro de 2019