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é?
wp_remote_post()
. eso explica todo ...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.&$this
se 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.Respuestas:
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).fuente