Bagaimana cara menguji wp_cron?

28

Ini semacam pertanyaan bodoh ...

Saya menjadwalkan tindakan untuk dijalankan setiap jam:

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

Bagaimana saya bisa menguji apakah ini berfungsi tanpa menunggu satu jam? :)

Saya mencoba menambahkan wp_clear_scheduled_hook('my_hourly_events');sebelum kode ini dan menambahkan wp_cron()setelah, tetapi saya tidak melihat fungsi saya berjalan ...

edit:

ok, saya menambahkan trigger_error()di dalam fungsi saya, memeriksa log kesalahan apache, dan itu ada di sana :)

Jadi sekarang saya bahkan lebih bingung:

  • Bagaimana menjalankan wp-cron di latar belakang? karena ternyata itulah yang terjadi jika saya tidak melihat output ...

  • ini tampaknya tidak berfungsi dalam konteks objek; Mengapa?

onetrickpony
sumber
ok saya menemukan wp-cron.php sedang dieksekusi wp_remote_post(). itu menjelaskan semuanya ...
onetrickpony
Dengan "konteks objek", apakah maksud Anda panggilan balik Anda seperti array( &$this, 'my_method_name' )? Itu memang tidak akan berfungsi karena nama fungsi disimpan dalam database untuk dieksekusi nanti. &$thismerujuk ke objek tertentu, bukan nama kelas, dan objek ini tidak akan ada pada permintaan berikutnya ketika pekerjaan cron dijalankan. Fungsi kelas statis harus berfungsi.
Jan Fabry
ya, saya harus membuat fungsi saya statis. Saya tidak berpikir wp akan menjalankan skrip lokal sebagai "cron"
onetrickpony

Jawaban:

20

Plugin favorit saya untuk itu adalah Core Control yang memiliki modul yang sangat bagus untuk menampilkan apa yang sedang terjadi di cron - acara mana yang diatur, kapan mereka akan menembak, dll.

Agar tangan Anda kotor _get_cron_array(), lihat , yang mengembalikan data yang tersimpan internal untuk acara cron (tingkat atas kunci adalah cap waktu).

Jarang
sumber
apakah HTTP Access Logger mencatat semua permintaan atau hanya permintaan yang dibuat dengan api HTTP WP? Ini bagus untuk mencari permintaan yang dibuat plugin dan mengapa laman Anda memuat dengan lambat :)
onetrickpony
@One Trick Pony tidak yakin, tapi masuk akal untuk menganggap itu hanya API
Rarst