WordPress – /wp-cron.php?doing_wp_cron

Que o software WordPress é de fácil instalação, rápida adaptação, grande performance, utilização ridiculamente simples e extremamente conveniente, ninguém pode negar. Acrescentando que tem diversos plugins que possibilitam sua personalização e que é gratuito, sob licença GLP, parece ser software perfeito.

Porém, quando a esmola é alta, o santo DEVE desconfiar.

Há dias estávamos, na empresa (locador.com.br), revisando códigos do WordPress para descobrir um grande problema que ele estava causando. O servidor web utilizado, Apache no caso, abria processos httpd cujo processamento alcançava a “bagatela” de 100%.

O maior problema não era este em si, pois o servidor onde tal problema estava ocorrendo é um Intel(R) Xeon(TM) Quad Core, CPU 3.20GHz, com poder de sobra para aguentar tais intempéries.

Com os processos alcançando 5 minutos de tempo de CPU, vários deles começaram a rodar simultaneamente, sendo este o maior problema, quando o processador estava sendo totalmente tomado por um simples WordPress, do mesmo site, gerando overload de todo o sistema.

Pedindo ao proprietário do site que solucionasse o problema, o mesmo achou a solução na internet e realizou as alterações necessárias. O link original da solução está no final deste post.

Solução: Abra o arquivo wp-config.php e procure pela função wp_cron (), vai notar que existe a definição DISABLE_WP_CRON. Definindo ” ‘DISABLE_WP_CRON’, true”, no seu wp-config.php, o problema se solucionará. Você desabilitará a função CRON do WordPress e isso não mais causará overload no servidor de hospedagem (solução válida para quem usa o WordPress para apenas um blog – utilizando múltiplos blogs, favor consultar o artigo original, com link abaixo).

Não existindo tal definição, em seu wp-config.php, adicione a seguinte linha:

define('DISABLE_WP_CRON', true);

Logicamente que as tarefas que o WordPress realiza através de seu cron interno serão interrompidas e você precisará delas para que o blog funcione perfeitamente.

Para tanto, basta adicionar, nas Tarefas Cron (Cron Tasks), de seu servidor de hospedagem, um dos seguintes comandos (se seu provedor não oferece tal opção, mude para nós, locador.com.br, adquirindo qualquer plano de hospedagem Linux):

  • wget http://www.server.com/wp-cron.php?doing_wp_cron

ou

  • curl http://www.server.com/wp-cron.php?doing_wp_cron
Tomando tais medidas seu blog funcionará perfeitamente, não comprometerá a “saúde” do servidor onde seu site está hospedado e não terá seu site bloqueado ou suspenso por uso excessivo de CPU.

ORIGINAL:

http://blog.dreamdevil.com/index.php/2010/01/29/run-wordpress-tasks-from-real-cron-job/2/