Descripción general de WP-Cron

WP-Cron ejecuta tareas específicas para sitios impulsados por WordPress. El nombre Cron proviene del sistema Unix para programar trabajos, que van desde una vez por minuto hasta una vez al año. Ya se trate de mantenimiento de rutina o alertas programadas, cualquier comando que se pueda ejecutar en Unix sin la intervención del usuario se puede programar como una tarea Cron.

WP-Cron es de naturaleza similar a Cron, pero difiere en un par de formas muy importantes. Esta función está diseñada únicamente para manejar tareas rutinarias de WordPress:

  • Compruebe si hay una nueva versión del núcleo, los temas y los complementos de WordPress
  • Limpiar el spam

Los complementos y temas pueden agregar tareas que se ejecutarán a intervalos regulares. Por ejemplo, si tienes un complemento que escanea Twitter en busca de tus tweets y luego los incorpora en los comentarios, lo más probable es que se haga con un trabajo de WP-Cron. WP-Cron abre un mundo completamente nuevo de cosas que un sitio impulsado por WordPress puede hacer.

¿Cómo se activa WP-Cron?

La principal diferencia entre Cron y WP-Cron es cómo se activa WP-Cron. Cron es un proceso de sistema que se ejecuta cada minuto y busca tareas para ejecutar. WP-Cron, debido a que es un sistema basado en la web, solo se puede ejecutar cuando alguien visita el sitio. Por lo tanto, cuando alguien navega a su sitio de WordPress, WP-Cron comprueba si hay que hacer algo. Gracias a los desarrolladores principales de WordPress, lo hace de una manera que no afecta negativamente el rendimiento de su sitio.

Los problemas con Sitios de bajo tráfico

Los sitios de WordPress de bajo tráfico pueden experimentar tareas omitidas cuando los visitantes activan esta función. Si la gente no está visitando tu sitio, WP-Cron no puede ejecutarlo. Esto no significa que tu página sea lenta con respecto a trabajos anteriores cuando alguien finalmente visite tu sitio. Independientemente de cuántas tareas WP-Cron tenga que ejecutar, se ejecutan en segundo plano para que el rendimiento de su sitio no se vea afectado negativamente.

Problemas con Sitios de alto tráfico

Si tu sitio con WordPress es de alto tráfico, es posible que tengas problemas con WP-Cron. Los principales problemas que surgen son las condiciones de carrera y los procesos de larga duración.

  • Condición de carrera: Cuando más de un usuario visita tu sitio y activa WP-Cron para ejecutar la misma tarea. WP-Cron trabaja duro para eliminar las condiciones de carrera, pero aún pueden suceder, especialmente en sitios de alto tráfico.
  • Proceso de ejecución prolongada: Cualquier tarea que tarda más de 60 segundos en ejecutarse. Los desarrolladores pueden ajustar el tiempo de ejecución de una tarea PHP con la función set_time_limit(). Si está configurado para ser más largo que la ventana entre tareas, puede terminar con más de una copia de wp-cron.php ejecutándose.

Ambos problemas se abordan dentro del bloqueo interno de WP-Cron y no son problemas comunes; sin embargo, todavía pueden ocurrir ocasionalmente.

Administrar WP-Cron internamente

WP-Cron viene preconfigurado y listo para ejecutarse, por lo que no necesita hacer nada para habilitarlo en sus sitios de WordPress.

Durante la instalación inicial de WordPress, varias tareas se configuran automáticamente. Puede usar algunos comandos simples de la línea de comandos, o uno de varios complementos, para encontrar los trabajos exactos que ejecuta WP-Cron.

WP-Cron Desde la CLI

Si tiene Terminus instalado, puede ver fácilmente todos los detalles de lo que está pasando con WP-Cron. Terminus, a través de WP-CLI, puede mostrarle detalles como:

  • Lo que está programado para ejecutarse
  • Lo que se ejecutará a continuación
  • Los ganchos de eventos que se configuran

También puede programar sus propios trabajos, ejecutar trabajos existentes y administrar casi todo lo relacionado con WP-Cron, todo desde la línea de comandos.

Una de las primeras cosas que querrá hacer es probar WP-Cron para asegurarse de que todo funciona correctamente. Cuando ejecute el siguiente comando, asegúrese de reemplazar SITE_NAME con el nombre de su sitio desde el panel de Pantheon y reemplace ENV_NAME con el entorno deseado («dev», «test», «live» o nombre de rama multidev).

terminus wp <site>.<env> -- cron test

Si todo funciona correctamente, el resultado se parece a esto:

Success: WP-Cron spawning is working as expected.

Esto le permite saber que en la WP-Cron está funcionando correctamente en su sitio. Desde aquí, puede ejecutar cualquier comando relacionado con cron con WP-CLI. Al usar WP-CLI para administrar su sitio WordPress alojado en Panteón, debería usar Terminus. El formato de comando es el siguiente:

terminus wp <site>.<env> -- cron <your wp-cron command and switches here>

Todos los comandos terminus wp requieren un nombre de sitio y un entorno para funcionar.

Nota

Si ha protegido su sitio mediante la configuración de seguridad de su Panel de control, Terminus no podrá ejecutar cron y es posible que vea errores de informe de estado en el Panel de control.

Complementos

Si desea vigilar WP-Cron pero no le gusta la línea de comandos, hay varios complementos que puede usar. WP Crontrol, por ejemplo, le mostrará todos los eventos programados para su sitio. Puede crear, editar, ejecutar o eliminar trabajos inmediatamente desde su panel de administración de WordPress. También puede vincular nuevas acciones a programaciones o mover las acciones existentes a nuevas programaciones desde la sección Herramientas.

WPX Cron Manager Lite hará un trabajo similar con una interfaz de usuario ligeramente diferente. Este complemento requiere que realice una instalación única del marco WPX, que puede realizar directamente desde la página del administrador de complementos.

Administrar WP-Cron Externamente

Si está buscando más control sobre los trabajos cron de su sitio, o no desea que WP-Cron maneje tareas internamente, puede usar crons externos en su lugar. Esto resolverá los problemas discutidos anteriormente para sitios de alto y bajo tráfico.

Deshabilitar WP-Cron

Lo primero que tendrá que hacer es deshabilitar el procesamiento interno de WP-Cron. Agregue la siguiente línea a su archivowp-config.php:

wp-config.php
define('DISABLE_WP_CRON', true);

Nota

Hay muchas tareas importantes de las que se encarga WP-Cron, así que prepárese para completar todos los pasos a continuación.

Servicios gratuitos

Una vez que haya desactivado WP-Cron, necesitará un servicio que llame a una URL a intervalos regulares. La forma más fácil de hacerlo es configurar una cuenta con un servicio cron gratuito:

  • EasyCron
  • Set Cron Job
  • cron-job

Cualquiera de los servicios anteriores realizará el trabajo. Al deshabilitar WP-Cron, ha desactivado la comprobación y llamada automáticas del script wp-cron.php. Ahora tendrá que llamar a esa URL usted mismo utilizando uno de los servicios anteriores. Con la mayoría de ellos, es tan fácil como esto:

  1. crear una cuenta
  2. Configurar un trabajo que se llama https://yourdomain.tld/wp-cron.php?doing_wp_cron

Nota

Reemplazar » sudominio.tld ‘ con tu dominio.

Dependiendo del servicio que utilice, es posible que tenga la capacidad de configurar varios trabajos en diferentes momentos. Todo lo que necesita es crear un solo trabajo que llame al script wp-cron.php de su sitio cada 15 minutos. WP-Cron se encargará del resto. Si crea nuevos horarios que deben ejecutarse con más frecuencia que una vez cada 15 minutos, tendrá que ajustar su trabajo en consecuencia.

Es importante que no agregue un valor a la variable de consulta doing_wp_cron; debe estar vacía para que el cron funcione correctamente.

Usando su propio servidor

Si administra su propio servidor, puede usar el servicio cron para hacer una llamada al script wp-cron.php. Tendrá que aprender a configurar correctamente un trabajo Cron y usar algo como wget o curl para obtener una página web. A menos que tome precauciones especiales, no es más seguro usar su propio servidor en comparación con un servicio cron basado en la web; sin embargo, le da más control.

Seguridad

En su mayor parte, wp-cron.php es seguro. Solo hay un parámetro que puede pasar que afectará al script (doing_wp_cron). Este valor $_GET no se filtra; solo se usa como indicador y no como entrada para un proceso o variable. Más allá de eso, se ignoran todas las entradas.

Aunque ningún script en un servidor conectado a Internet es 100% seguro, wp-cron.php actualmente no tiene vulnerabilidades o exploits conocidos.

Complementos de WordPress Cron

WordPress tiene muchos complementos que controlan tanto las tareas internas de WP-Cron como los trabajos externos de Cron. Dado que Pantheon no proporciona servicios Cron, no recomendamos ni desalentamos el uso de ningún complemento dado. Te animamos a que eches un vistazo a la lista de plugins Cron de WordPress y experimentes en tu entorno de desarrollo para encontrar el que mejor se adapte a tus necesidades.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.