¿Cómo probar wp_cron?


28

Esta es una especie de pregunta estúpida ...

He programado una acción para que se ejecute cada hora:

if(!wp_next_scheduled('my_hourly_events'))
  wp_schedule_event(time(), 'hourly', 'my_hourly_events');

add_action('my_hourly_events', 'the_function_to_run');

function the_function_to_run(){
   echo 'it works!'; 
}

¿Cómo puedo probar si esto funciona sin esperar una hora? :)

Intenté agregar wp_clear_scheduled_hook('my_hourly_events');antes de este código y agregar wp_cron()después, pero no veo que mi función se ejecute ...

editar:

ok, agregué un trigger_error()dentro de mi función, revisé el registro de errores de apache y está allí :)

Entonces ahora estoy aún más confundido:

  • ¿Cómo se puede ejecutar wp-cron en segundo plano? porque aparentemente eso es lo que sucede si no veo salida ...

  • esto no parece funcionar en un contexto de objeto; ¿por qué?


ok descubrí que wp-cron.php se está ejecutando con wp_remote_post(). eso explica todo ...
— onetrickpony

Por "contexto de objeto", ¿quiere decir que su devolución de llamada es como array( &$this, 'my_method_name' )? De hecho, eso no funcionará porque el nombre de la función se almacena en la base de datos para ejecutarse más tarde. &$thisse refiere a un objeto específico, no a un nombre de clase, y este objeto no existirá en la próxima solicitud cuando se ejecute el trabajo cron. Una función de clase estática debería funcionar.
— Jan Fabry

Sí, tuve que hacer mi función estática. No pensé que wp ejecutaría remotamente un script local como "cron"
— onetrickpony

Respuestas:


20

Mi complemento favorito para eso es Core Control, que tiene un módulo muy bueno para mostrar lo que está sucediendo en el cron: qué eventos se configuran, cuándo se disparan, etc.

Al ensuciarse las manos, vea el nivel _get_cron_array(), que devuelve datos internos almacenados para eventos cron (el nivel superior de las claves son marcas de tiempo).


¿El registrador de acceso HTTP registra todas las solicitudes o solo las realizadas con la API HTTP de WP? Esto es ideal para encontrar las solicitudes plugins hacen y por qué se carga la página :) lenta
— onetrickpony

@One Trick Pony no está seguro, pero tendría sentido suponer que es solo API
— Rarst
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.