Cara men-debug WordPress "Cron" wp_schedule_event

22

Bagaimana saya bisa men-debug masalah dengan WordPress Cron? Saya pikir itu akan memicu ketika pengguna pergi ke situs Anda tetapi kesalahan tidak akan ditampilkan kepada mereka, karena pekerjaan dijalankan "secara tidak sinkron". Jadi bagaimana saya bisa men-debug kesalahan?

saya menggunakan wp schedule event

Jiew Meng
sumber
1
Baca dokumentasi ini: developer.wordpress.org/plugins/cron/…
Nanhe Kumar
Gunakan plugin Advanced Cron Manager
Tamu

Jawaban:

27

Anda dapat menjalankan WP cron secara manual dengan menelepon: http://example.com/wp-cron.php?doing_wp_cron

Jika Anda tidak ingin cron otomatis dijalankan saat Anda sedang debug, maka tambahkan ini ke /wp-config.phpfile Anda :

define('DISABLE_WP_CRON', true);

Jika Anda berada di lingkungan pengembangan dan ingin membuat output informasi debug, memanggilnya secara manual seperti itu akan menunjukkan kepada Anda output debug Anda.

Atau Anda dapat menggunakan fungsi error_log bawaan PHP untuk mencatat string pesan ke log kesalahan untuk debugging. Anda harus menggunakan ini bersama dengan pengaturan WP_DEBUG , seperti yang disebutkan oleh Rarst.

Gabrielk
sumber
Terima kasih atas petunjuknya dengan ?doing_cronparameter.
rofflox
3
Saya percaya itu seharusnya ?doing_wp_cronbukan ?doing_cron.
liviucmg
@liviucmg Ya, Anda benar. Saya telah membuat tweak.
Simon East
1
Apakah ?doing_wp_cronparameter diperlukan? Lihat tutorial pengaturan manual EasyCron .
AlecRust
@ gabrielk Apakah parameter? doing_cron diperlukan? apa artinya?
jedi
6

Anda bisa menggunakan plugin Cron-View . Di sana Anda dapat melihat apakah pekerjaan Anda adalah a) terdaftar dan b) berapa tenggat waktu berikutnya.

Selain itu, Anda dapat menambahkan timer-jadwal yang lebih rendah ke acara Anda (mis. Setiap 2 menit) dan menguji metode Anda lebih sering pada sistem lokal. Gunakan kait filter 'cron_schedules' untuk mendaftarkan waktu jadwal baru. Sebagai contoh:

function my_additional_schedules($schedules) {
    // interval in seconds
    $schedules['every2min'] = array('interval' => 2*60, 'display' => 'Every two minutes');
    return $schedules;
}
add_filter('cron_schedules', 'my_additional_schedules');
rofflox
sumber
3

Anda bisa melakukan debug secara manual, dengan membuat aksi dan mengeksekusi aksi Cron di dalamnya. Seperti ini:

add_action( 'init', function() {

    if ( ! isset( $_GET['the_cron_test'] ) ) {
        return;
    }

    error_reporting( 1 );

    do_action( 'this_is_cron_event_hook' );

    die();

} );

Dan dengan masuk ke alamat situs web Anda: http://example.com?the_cron_test

Ini akan menunjukkan kepada Anda segala kesalahan dengan tugas cron.

Tapi itu tanpa rasa melakukannya secara manual. Anda bisa menggunakan plugin Advanced Cron Manager PRO yang melakukan ini untuk Anda dan juga menyimpan log dan statistik lainnya.

WPMaster
sumber