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?


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).


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.