¿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é?

Pony de un solo truco
fuente
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).

Rarst
fuente
¿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