Come testare wp_cron?


28

Questa è una specie di domanda stupida ...

Ho programmato un'azione da eseguire ogni ora:

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!'; 
}

Come posso verificare se funziona senza aspettare un'ora? :)

Ho provato ad aggiungere wp_clear_scheduled_hook('my_hourly_events');prima di questo codice e aggiungere wp_cron()dopo, ma non vedo la mia funzione in esecuzione ...

modificare:

ok, ho aggiunto una trigger_error()funzione interna, ho verificato il log degli errori di Apache ed è lì :)

Quindi ora sono ancora più confuso:

  • Come può wp-cron funzionare in background? perché apparentemente è quello che succede se non vedo alcun output ...

  • questo non sembra funzionare in un contesto di oggetto; perché?


ok ho scoperto che wp-cron.php è in esecuzione wp_remote_post(). questo spiega tutto ...
onetrickpony,

Per "contesto dell'oggetto", vuoi dire che il tuo callback è come array( &$this, 'my_method_name' )? Questo in effetti non funzionerà perché il nome della funzione è archiviato nel database per essere eseguito in seguito. &$thisfa riferimento a un oggetto specifico, non a un nome di classe, e questo oggetto non esisterà alla richiesta successiva quando viene eseguito il processo cron. Una funzione di classe statica dovrebbe funzionare.
Jan Fabry,

si, ho dovuto rendere statica la mia funzione. Non pensavo che wp avrebbe eseguito in remoto uno script locale come "cron"
onetrickpony,

Risposte:


20

Il mio plugin preferito per questo è Core Control che ha un modulo molto carino per la visualizzazione di ciò che sta accadendo nel cron: quali eventi sono impostati, quando verranno attivati, ecc.

A sporcarsi le mani vedi il livello _get_cron_array(), che restituisce i dati memorizzati interni per gli eventi cron (il livello superiore delle chiavi sono i timestamp).


HTTP Access Logger registra tutte le richieste o solo quelle fatte con l'API HTTP di WP? Questo è ottimo per trovare richieste
fatte dai

@One Trick Pony non è sicuro, ma avrebbe senso supporre che sia solo API
Rarst
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.