Como testar o wp_cron?

28

Essa é uma pergunta estúpida ...

Programei uma ação para ser executada a 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!'; 
}

Como posso testar se isso funciona sem esperar uma hora? :)

Tentei adicionar wp_clear_scheduled_hook('my_hourly_events');antes deste código e wp_cron()depois, mas não vejo minha função em execução ...

editar:

ok, eu adicionei um trigger_error()dentro da minha função, verifiquei o log de erros do apache e está lá :)

Então agora estou ainda mais confuso:

  • Como o wp-cron pode ser executado em segundo plano? porque, aparentemente, é o que acontece se não houver saída ...

  • isso não parece funcionar em um contexto de objeto; porque?

onetrickpony
fonte
ok, descobri que o wp-cron.php está sendo executado wp_remote_post(). que explica tudo ...
onetrickpony
Por "contexto do objeto", você quer dizer como é o retorno de chamada array( &$this, 'my_method_name' )? Isso de fato não funcionará porque o nome da função é armazenado no banco de dados para ser executado posteriormente. &$thisrefere-se a um objeto específico, não a um nome de classe, e esse objeto não existirá na próxima solicitação quando o trabalho cron for executado. Uma função de classe estática deve funcionar.
Jan Fabry
sim, tive que tornar minha função estática. Eu não acho wp seria remotamente executar um script local como "cron"
onetrickpony

Respostas:

20

Meu plug-in favorito é o Core Control, que possui um módulo muito bom para exibir o que está acontecendo no cron - quais eventos são configurados, quando serão os próximos disparos etc.

Ao sujar as mãos, consulte _get_cron_array(), que retorna dados armazenados internos para eventos cron (o nível superior das chaves é o registro de data e hora).

Rarst
fonte
o HTTP Access Logger registra todas as solicitações ou apenas as feitas com a API HTTP do WP? Isso é ótimo para encontrar pedidos plugins fazem e por que sua página está a carregar :) lento
onetrickpony
@One Trick Pony não tenho certeza, mas não faria sentido para assumir apenas a sua API
Rarst