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.