Cómo crear y modificar un trabajo cron de WordPress

Rifat Complementos de WordPress Jul 4, 2023

Cron es una utilidad comúnmente empleada en sistemas Unix/Linux para programar comandos o scripts en un servidor web que opera en segundo plano. Un trabajo cron se refiere a una tarea específica programada para ejecutarse en horas, fechas o intervalos fijos predeterminados. Tales tareas suelen ser repetitivas y automatizadas para mejorar la eficiencia. En el caso de WordPress, la función WP-Cron se utiliza para emular un cron del sistema.

Las instancias de trabajos cron de WordPress pueden incluir la programación de la publicación de una publicación o la ejecución de un complemento de respaldo en un horario predefinido. El enfoque de esta discusión es proporcionar una guía completa sobre cómo crear, modificar y ejecutar sin esfuerzo un trabajo cron de WordPress.

Cómo configurar un trabajo cron en WordPress

Vale la pena señalar que WP-Cron difiere ligeramente de un sistema cron, y cada uno tiene sus propias ventajas y desventajas. WP-Cron se basa únicamente en intervalos, mientras que un sistema cron se basa en tiempos específicos. Además, WP-Cron funciona solo cuando la página está cargada, ya sea en el back-end o en el front-end, lo que puede resultar en una menor confiabilidad. Los intervalos predeterminados proporcionados por WordPress incluyen horarios por hora, dos veces al día y diarios.

Para programar eventos de WP-Cron, es necesario crear enlaces personalizados. Recomendamos encarecidamente consultar el manual oficial de complementos de WordPress, que ofrece una excelente guía sobre la programación de eventos de WP-Cron. Si está buscando un método alternativo para configurar un cron del sistema dentro de WordPress, le sugerimos consultar el artículo de Tom Mcfarlin’ sobre cómo definir un trabajo cron de WordPress. Además, para aquellos que pueden tener menos experiencia, exploraremos una manera fácil de utilizar WP-Cron junto con el popular complemento gratuito WP C r ontrol. Este complemento le permite monitorear y administrar las actividades dentro del sistema WP-Cron.

Create Amazing Websites

Con el mejor generador de páginas gratuito Elementor

Empezar ahora

WP Crontrol cuenta con una impresionante cantidad de instalaciones activas que superan las 200.000, junto con una calificación excepcional de 4,5 sobre 5. Dentro de la comunidad de WordPress, este complemento ha ganado una gran admiración.

Este complemento ofrece una utilidad notable al proporcionar una descripción general completa de los trabajos CRON que están programados para ejecutarse. Sirve como un excelente paso inicial para comprender los procesos subyacentes y determinar su estado operativo. Tales méritos han llevado a una calificación unánime de 5 estrellas. Además, la capacidad de crear nuevos trabajos cron e iniciar la ejecución de los existentes mejora aún más su valor, lo que garantiza una calificación adicional de 5 estrellas, según afirma Josh, el creador de Caldera Forms.

Para adquirir este complemento, puede descargarlo directamente desde el repositorio de WordPress o localizarlo en el panel de control de WordPress en la sección de complementos "Agregar nuevo". Las características notables de WP Control abarcan:

  • Una visualización completa de todos los eventos cron, incluidos sus respectivos argumentos, patrones de recurrencia y próximos tiempos de ejecución.
  • La capacidad de modificar, eliminar o iniciar inmediatamente cualquier evento cron.
  • La provisión para introducir nuevos eventos cron.
  • La opción de agregar, modificar y eliminar programaciones cron personalizadas.

Horarios de WP-Cron

Tras la activación, el usuario obtiene la capacidad de modificar los horarios de trabajo de WordPress Cron accediendo a la sección "Horarios de Cron" dentro de la configuración de su panel de WordPress. Es importante observar que el complemento presenta un horario predeterminado adicional de una frecuencia semanal. Además, los usuarios tienen la opción de incluir horarios adicionales medidos en segundos, por ejemplo, 21600 segundos para ejecutar tareas cada 6 horas.

Estos intervalos se pueden incorporar al código mediante la utilización de un filtro, ejemplificado por la siguiente línea de código:

add_filter( 'cron_schedules', 'example_add_cron_interval' );

function example_add_cron_interval( $schedules ) {
 $schedules['five_seconds'] = array(
 'interval' => 5,
 'display' => esc_html__( 'Every Five Seconds' ),
 );

return $schedules;
 }

Eventos WP-Cron


Posteriormente, el complemento también se puede utilizar para ver los trabajos Cron de WordPress existentes que se han programado. Para acceder a esta función, vaya a la sección "Eventos de Cron" en la pestaña "Herramientas". Numerosos nombres de acciones son fácilmente identificables, ya que se espera que se correspondan con partes específicas del nombre del complemento, como "woocoomerce_cleanup_sessions" o "gravityforms_cron".


Para iniciar una ejecución inmediata de un evento Cron, simplemente haga clic en la opción "Ejecutar ahora" junto al nombre de la acción correspondiente. Esta funcionalidad resulta ventajosa durante el proceso de resolución de problemas, especialmente cuando es necesario ejecutar un evento Cron varias veces.

Agregar evento cron

Además, tiene la opción de incorporar eventos Cron en su configuración. En este caso, demostraremos el proceso de agregar un trabajo Cron de WordPress específicamente para el complemento Disqus. Muchas personas pueden desear realizar esta tarea para modificar la frecuencia de sincronización o resolver problemas relacionados con la sincronización de comentarios. La documentación proporcionada por cada desarrollador de complementos de terceros debe contener el nombre designado para su evento cron o, en otras palabras, el nombre de la acción. En el caso del complemento de Disqus, el nombre de la acción utilizada es "dsq_sync_forum".

Si tiene la intención de crear un evento cron desde cero, necesitará un enlace de acción correspondiente dentro de su código, como el archivo functions.php. El siguiente ejemplo, cortesía de WP-Crontrol, ilustra este concepto:

add_action( 'my_hookname', 'my_function' );

La siguiente función que vas a escribir es:

function my_function() {
    wp_mail( '[email protected]', 'WP Crontrol', 'WP Crontrol rocks!' );
}


En el caso de Disqus, nuestro paso inicial consiste en incorporar un cronograma nuevo con una duración de 600 segundos (equivalente a 10 minutos). Posteriormente, procedemos a acceder a la función "Add Cron Event", donde ingresamos "dsq_sync_forum" como el nombre de la acción designada. Luego seleccionamos el tiempo de ejecución posterior y optamos por el intervalo de 10 minutos que establecimos recientemente. Finalmente, concluimos el proceso seleccionando "Add Cron Event". En consecuencia, este procedimiento asegura una recurrencia automática cada 10 minutos, facilitando la sincronización manual de los comentarios de Disqus con nuestra base de datos de WordPress.

En esencia, la utilización de esta funcionalidad es sencilla y fácil de usar.

Modificar evento de maíz

Además, es posible modificar eventos Cron preexistentes seleccionando la opción "Editar" junto al nombre de la acción. En consecuencia, obtiene la capacidad de modificar el nombre de la acción, los argumentos, la ejecución posterior y la recurrencia programada. Es importante tener cuidado al realizar dichos cambios, ya que numerosos complementos dependen de sus trabajos de Cron para funcionar correctamente.

Agregar un trabajo cron usando cPanel

Si tiene acceso a una cuenta de cPanel proporcionada por su servidor web, puede utilizar el panel de control para establecer trabajos cron. Para lograr esto, inicie sesión en su cuenta de cPanel y navegue a la sección "Avanzado", luego seleccione "Trabajos Cron".

La página de configuración de Cron Jobs ofrece opciones para configurar las notificaciones de cron job y establecer otras nuevas. Para incorporar un trabajo cron, navegue hasta la sección denominada "Agregar nuevo trabajo cron" desplazándose hacia abajo.

Dentro de esta sección, tendrá la oportunidad de ajustar la frecuencia del comando.

El menú Configuración común abarca varias opciones preconfiguradas, que van desde una frecuencia de una vez por minuto a una vez por año. Los usuarios tienen la flexibilidad de seleccionar cualquiera de estas opciones o, alternativamente, personalizar los campos a continuación ingresando un valor personalizado.

Después de configurar la frecuencia del trabajo cron, puede proceder a ingresar el comando que ejecutará dentro del campo Comando designado. Para conservar los cambios, guarde el trabajo cron seleccionando la opción "Agregar nuevo trabajo cron". En consecuencia, el trabajo cron recién creado se mostrará entre los trabajos cron actuales enumerados en la parte inferior de la página.

Deshabilitar WP-Cron

En ciertos casos, la utilización de la función WP-Cron puede generar complicaciones para su sitio web. WP-Cron es una versión simulada de un trabajo cron, que carece de la operación continua típicamente asociada con tales trabajos. En cambio, WordPress ejecuta el script wp-cron.php cada vez que se carga una página.

Este enfoque puede generar desafíos para los sitios web que experimentan mucho tráfico, ya que se deben asignar recursos sustanciales para ejecutar wp-cron.php durante cada carga de página. Si el script no se ejecuta debido a la carga de la página, los comandos programados también pueden fallar, ya que wp-cron.php no supervisa activamente los intervalos.

Si encuentra problemas con WP-Cron, tiene la opción de desactivar esta función incorporando el siguiente código en el archivo wp-config.php de WordPress:

define('DISABLE_WP_CRON', true);

Una vez que las modificaciones se han guardado en el archivo, el proceso está completo. Sin embargo, si opta por deshabilitar WP-Cron, deberá establecer una solución alternativa empleando cualquiera de los métodos descritos en las secciones anteriores de este tutorial.

Terminando

Mejore la eficiencia y reduzca los gastos mientras optimiza la funcionalidad del sitio web aprovechando las integraciones de nivel empresarial valoradas en $ 275 o más, que se integran perfectamente en cada plan de WordPress administrado. Estas integraciones comprenden una red de entrega de contenido (CDN) de alto rendimiento, una sólida protección de denegación de servicio distribuida (DDoS), protecciones integrales contra malware e intentos de piratería, mecanismos eficientes de almacenamiento en caché perimetral y las máquinas de CPU más rápidas de Google. Comience su viaje sin necesidad de largos compromisos contractuales, benefíciese de migraciones guiadas y disfrute de una garantía de devolución de dinero de 30 días.

Divi WordPress Theme