El CRON de WordPress es más falso que los Milli Vanilli

Hay ciertas tareas informáticas que deben ser ejecutadas cada cierto período de tiempo (backups automáticos, borrado de SPAM, cobro de membresías, etc). Para ello solemos utilizar un comando de Unix llamado CRON el cual ejecuta actividades y procesos en segundo plano (servicio daemon) mediante una sintaxis bastante rara de asteriscos y números.

WordPress también necesita ejecutar tareas con una cierta cronología aunque no puede usar el comando CRON de Unix. Como tecnología abierta debe ser independiente de sistema operativos o de configuraciones específicas de servidor. Para dar una respuesta a esta situación se creó el bendito wp-cron.php, un fichero PHP que se activa con cada visita a la web y que dispara un administrador de tareas con su correspondiente control de tiempos.

Si bien es una solución muy inteligente hay que tener cierto cuidado porque:

  1. Puede que no tengamos ninguna visita y acciones que debían ser ejecutadas no se ejecutan.
  2. O bien puede que tengamos muchas visitas y el procesador del servidor se vea sobrecargado con demasiadas peticiones al fichero wp-cron.php

Cuando sucede el segundo caso, es muy probable que recibamos un bonito email de nuestro proveedor de hosting con un mensaje que dice más o menos así:


Hola, <fulanito de tal>.

Su cuenta <nombre de su cuenta> ha alcanzado el 80% del uso diario permitido de 20000 de CPU segundos por cuenta. Tenga en cuenta que una vez le dé el 100% de los segundos de CPU diario permitido, su servicio web estará limitado por el día natural. El límite de servicio web significa que puede estar teniendo problemas para acceder a su sitio web.


Gracias a estos problemas, hemos escuchado por ahí que “el CRON de WordPress es más falso que los Milli Vanilli“.

Solución

¿Qué podemos hacer entonces? Pues muy simple, en primer lugar vamos a desactivar el “CRON” de WordPress definiendo la siguiente constante en el fichero wp-config.php.

define ('DISABLE_WP_CRON', true);

Acto seguido solicitamos o configuramos por nuestra cuenta un CRON (del verdadero, de los de sin comillas) en nuestro proveedor de hosting para que ejecute este fichero en un intervalo de 30 minutos o bien una hora (a menos que tengamos una necesidad específica con esta configuración tendríamos que ir de lujo).

Cada proveedor de hosting tiene su propia aplicación para configurar tareas de CRON y variará según el caso. En la siguiente imagen podemos ver cómo lo implementa SiteGround y Host Europe respectivamente.

Configuradores de tareas de CRON de SiteGround y Host Europe

Vemos que en el primer campo tenemos un selector donde podemos elegir valores habituales y que autocompletan los demás campos:

  • Una vez por minuto ( * * * * * )
  • Una vez cada 5 minutos ( */5 * * * * )
  • Una vez cada 30 minutos ( 0,30 * * * * )
  • Una vez por hora ( 0 * * * * )
  • Dos veces al día ( 0 0,12 * * * )
  • Una vez al día ( 0 0 * * * )
  • Una vez por semana ( 0 0 * * 0 )
  • El 1 y el 15 del mes ( 0 0 1,15 * * )
  • Una vez al mes ( 0 0 1 * * )
  • Una vez por año ( 0 0 1 1 * )

En el campo comando debemos pegar la siguiente línea:

/usr/local/bin/php /home/public_html/wp-cron.php

Esta línea de código ejecuta, utilizando el comando PHP, el fichero wp-cron.php de WordPress que ejecutará a su vez las tareas que tenga asociada siempre y cuando se respete la cronología de las mismas.

Este comando puede variar ya que algunos servidores de hosting pueden tener el comando php en el PATH o bien la ruta hacia el fichero wp-cron.php puede ser otra. Pero más o menos se hacen a la idea, si tienen duda lo mejor es ponerse en contacto directamente con vuestro proveedor. Gracias José Conti por esta aclaración 😉.


Conclusión

Con estos simples pasos vamos a asegurarnos que nuestras tareas CRON se ejecutan y también vamos a mantener una larga relación de amistad con nuestros proveedores de hosting. Verdadera, no como la mentira de los Milli Vanilli.

Happy coding


¿Qué te pareció el artículo?
No molaPobreMolaMuy bueno¡Excelente! (5 votos, promedio: 4,20 de 5)
Cargando…
Mauricio Gelves
Mauricio Gelves es Lic. en Informática y trabaja como Consultor Web Freelance con su marca personal MauGelves. Se especializó en WordPress para ofrecer soluciones personalizadas y rentables a medianas y largas empresas. Es Nómade Digital desde el año 2015, actividad que combina sus dos principales pasiones: la informática y los viajes, y refleja sus experiencias a través de sus hobbies audiovisuales en Instagram y YouTube.

3 thoughts on “El CRON de WordPress es más falso que los Milli Vanilli”

  1. Que gracia que comentes a Milli Vanilli, por tu edad no deberías ni conocerlos, pero los pobres han quedado como sanbenito de fake, cuando es algo que hacen a diario muchos músicos y no se les pone tanto a parir 😀

    Dicho esto, buen truco, lo uso hace tiempo, lo comenté en un webinar reciente, deberíamos hacerlo todos 🙂

    1. Ay Fernando, si supieras todo lo que escucho. Musicalmente la cigüeña me trajo muy tarde.
      Y sí, el truco surgió a base del tirón de orejas que me dio SiteGround y un poco de las recomendaciones que ellos brindan (seguramente basados en tus consejos 😛 ).
      Un abrazo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

WordPress Theme by RichWP