Juan Pablo Prado

Software Engineer

  • Home
  • About
  • Contact

Connect

  • Github
  • Linkedin
  • Twitter

Juan Pablo Prado © 2021

Cron para tu sitio WordPress

octubre 10, 2016 By Juan Prado Leave a Comment

automate-all-the-things

En el post anterior acerca de Backups Automáticos para tu sitio WordPress, nos encaminaba por el proceso de configuración de las copias de seguridad automáticas. En este post voy a demostrar cómo configurar cron.

WordPress ha incorporado soporte para las tareas programadas, lo que permite a ciertos procesos que se deben realizar como un proceso en segundo plano en los horarios establecidos. WordPress lleva a cabo las siguientes tareas programadas:

  • Las actualizaciones automáticas que son empujadas por el equipo central de WordPress para solucionar vulnerabilidades de seguridad.
  • Comprobar WordPress este instalado con la última versión estable.
  • Comprobar si hay actualizaciones de plugins.
  • Comprobar si hay actualizaciones del tema.
  • Publicar todos los mensajes programados para futuras versiones.

Sin embargo, el sistema cron usado por WordPress no es la implementación mas potente o precisa. De hecho, WordPress es un sistema de cron falso. La razón de esto es que las tareas programadas dentro de WordPress se activan durante el ciclo de vida de un page request. Por lo tanto, si tu sitio no recibe ninguna visita durante un período determinado de tiempo, ningún evento cron se activará durante este tiempo. Esto también aplica a los sitios que utilizan el almacenamiento en caché de página completa, tales como Nginx FastCGI. La razón de esto es que WordPress ya no está procesando cada solicitud de página si se golpea el caché de páginas. Por lo general, esto significa que el cron no se disparará hasta que el caché de la página expira. Si has configurado que el caché caduque después de 60 minutos esto puede no ser un problema, sin embargo, si estas cacheando períodos más largos de tiempo, esto puede llegar a serlo. Otros problemas pueden surgir en los sitios de alto tráfico, donde el almacenamiento en caché de página completa no es una opción. Esto se debe a la comprobación innecesaria de la cola cron en cada petición individual, lo cual es muy ineficiente.

Para superar estos problemas es aconsejable que cron se configure con el demonio del sistema (proceso en segundo plano), que está disponible en los sistemas basados en Unix. Debido a que cron se ejecuta como un daemon que se ejecutará en base a la hora del sistema del servidor y ya no requerirá que el usuario visita el sitio. Pero antes de configurar el cron se recomienda que deshabilites la manipulación automática de cron de WordPress. Para hacerlo añade la siguiente línea a tu archivo wp_config.php.

define('DISABLE_WP_CRON', true);

Introduciendo crontab

Los eventos Cron se añaden a un archivo de texto llamado crontab y cada línea dentro del archivo equivale a un único evento cron.

Primero conecte a su servidor.

ssh juan@apollo.juanpabloprado.com

Abre la crontab con el siguiente comando. Si esta es la primera vez que hayas abierto crontab, es posible que se te pida seleccionar un editor. Opción 2 (nano) es generalmente la más fácil.

crontab -e

crontab

No voy a entrar en detalles sobre la sintaxis crontab, pero añadiendo lo siguiente al final del archivo activará cron cada 5 minutos. Sólo recuerda que debes actualizar la ruta del archivo para apuntar a tu instalación de WordPress.

*/5 * * * * php -q /var/www/html/wp-cron.php >/dev/null 2>&1

La parte:

 >/dev/null 2>&1

Asegura que ningún mensaje de correo electrónico se envíe a la cuenta de usuario que inicia la tarea o cron job en ingles.

cron-job

Guarda el archivo pulsando Ctrl X seguido de Y.

De igual manera cuento con varias tareas automatizadas puedes echarles un vistazo al siguiente repo y en el futuro espera un blog post acerca de ellas.

Cron ahora está configurado con la función nativa cron de Unix. 🙂

Share this:

  • Click to share on Twitter (Opens in new window)
  • Click to share on Facebook (Opens in new window)
  • Click to share on Google+ (Opens in new window)

Filed Under: Uncategorized Tagged With: Cron, Digital Ocean, Linux, Server, Ubuntu, WordPress, WordPress Development Tips

Categorías

  • Uncategorized