Cómo depurar WordPress "Cron" wp_schedule_event

21

¿Cómo puedo depurar problemas con WordPress Cron? Creo que se activará cuando los usuarios vayan a su sitio, pero no se les mostrarán los errores, ya que los trabajos se ejecutan "de forma asíncrona". Entonces, ¿cómo puedo depurar errores?

Uso wp schedule event

    
pregunta Jiew Meng 31.03.2011 - 16:24

4 respuestas

27

Puede ejecutar WP cron manualmente llamando a: http://example.com/wp-cron.php?doing_wp_cron

Si no quieres que el cron automático se ejecute mientras estás depurando, agrega esto a tu archivo /wp-config.php :

define('DISABLE_WP_CRON', true);

Si estás en un entorno de desarrollo y deseas generar información de depuración, al hacerlo de forma manual, se mostrará tu salida de depuración.

Alternativamente, puede usar la función error_log de PHP para registrar las cadenas de mensajes del error registro para la depuración. Necesitaría usar esto junto con WP_DEBUG settings , como lo menciona Rarst.

    
respondido por el gabrielk 31.03.2011 - 20:15
6

Puede usar el complemento Cron-View . Allí puede ver si su trabajo está a) registrado y b) cuál es el próximo plazo de entrega.

Además, puede agregar un cronograma más bajo a su evento (por ejemplo, cada 2 minutos) y probar su método con más frecuencia en un sistema local. Use el gancho de filtro 'cron_schedules' para registrar nuevos horarios de programación. Por ejemplo:

function my_additional_schedules($schedules) {
    // interval in seconds
    $schedules['every2min'] = array('interval' => 2*60, 'display' => 'Every two minutes');
    return $schedules;
}
add_filter('cron_schedules', 'my_additional_schedules');
    
respondido por el rofflox 31.03.2011 - 17:22
3

Puede (y probablemente debería, en cualquier caso, cron o no) configurar el registro de errores de PHP captura todos los errores.

    
respondido por el Rarst 31.03.2011 - 17:10
2

Puedes depurar manualmente, creando una acción y ejecutando la acción Cron en su interior. Así:

add_action( 'init', function() {

    if ( ! isset( $_GET['the_cron_test'] ) ) {
        return;
    }

    error_reporting( 1 );

    do_action( 'this_is_cron_event_hook' );

    die();

} );

Y visitando la dirección de su sitio web: http://example.com?the_cron_test

Esto debería mostrar cualquier error con la tarea cron.

Pero no tiene ningún sentido hacerlo manualmente. Puede usar el complemento Advanced Cron Manager PRO que hace esto por usted y también guarda el registro otras estadísticas.

    
respondido por el WPMaster 24.07.2017 - 15:28

Lea otras preguntas en las etiquetas