วิธีแก้ปัญหา WordPress“ Cron” wp_schedule_event


22

ฉันจะดีบักปัญหากับ WordPress Cron ได้อย่างไร ฉันคิดว่ามันจะทริกเกอร์เมื่อผู้ใช้ไปที่ไซต์ของคุณ แต่ข้อผิดพลาดใด ๆ จะไม่ปรากฏแก่พวกเขาเนื่องจากงานจะทำงาน "แบบไม่พร้อมกัน" ดังนั้นฉันจะแก้ไขข้อผิดพลาดได้อย่างไร

ฉันใช้ wp schedule event


1
อ่านเอกสารนี้: developer.wordpress.org/plugins/cron/…
Nanhe Kumar

คำตอบ:


27

คุณสามารถรัน WP cron ด้วยตนเองโดยโทร: http://example.com/wp-cron.php?doing_wp_cron

หากคุณไม่ต้องการให้ cron อัตโนมัติทำงานในขณะที่คุณกำลังดีบั๊กให้เพิ่ม/wp-config.phpไฟล์นี้ในไฟล์ของคุณ:

define('DISABLE_WP_CRON', true);

หากคุณอยู่ในสภาพแวดล้อมการพัฒนาและต้องการส่งออกข้อมูลการดีบักการโทรด้วยตนเองเช่นนั้นจะแสดงผลลัพธ์การดีบักของคุณ

หรือคุณสามารถใช้ฟังก์ชันerror_logในตัวของ PHP เพื่อบันทึกสตริงข้อความลงในบันทึกข้อผิดพลาดเพื่อการดีบั๊ก คุณต้องใช้สิ่งนี้ร่วมกับการตั้งค่า WP_DEBUG ตามที่ Rarst พูดถึง


ขอบคุณสำหรับคำแนะนำด้วย?doing_cronพารามิเตอร์
rofflox

3
ผมเชื่อว่ามันควรจะเป็นแทน?doing_wp_cron ?doing_cron
liviucmg

@liviucmg ใช่คุณพูดถูก ฉันได้ทำการปรับแต่ง
Simon East

1
เป็น?doing_wp_cronพารามิเตอร์ต้อง? ดูชุดคู่มือ EasyCron ขึ้นกวดวิชา
AlecRust

@gabrielk จำเป็นต้องใช้พารามิเตอร์ Do_cron หรือไม่ มันหมายความว่าอะไร?
jedi

6

คุณสามารถใช้ปลั๊กอินCron-View มีคุณสามารถดูว่างานของคุณเป็น) ลงทะเบียนและข) เวลาที่กำหนดต่อไปคืออะไร

นอกจากนี้คุณสามารถเพิ่มตัวจับเวลาที่ต่ำกว่าลงในกิจกรรมของคุณ (เช่นทุก ๆ 2 นาที) และทดสอบวิธีการของคุณบ่อยขึ้นในระบบท้องถิ่น ใช้ตะขอตัวกรอง 'cron_schedules' เพื่อลงทะเบียนตารางเวลาใหม่ ตัวอย่างเช่น:

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');


3

คุณสามารถดีบักได้ด้วยตนเองโดยสร้างแอคชันและดำเนินการแอคชัน Cron ภายใน อย่างนี้:

add_action( 'init', function() {

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

    error_reporting( 1 );

    do_action( 'this_is_cron_event_hook' );

    die();

} );

และโดยไปที่ที่อยู่เว็บไซต์ของคุณ: http://example.com?the_cron_test

สิ่งนี้จะแสดงข้อผิดพลาดใด ๆ กับงาน cron

แต่มันก็ไม่จำเป็นต้องทำด้วยตนเอง คุณสามารถใช้ปลั๊กอินAdvanced Cron Manager PROซึ่งทำสิ่งนี้เพื่อคุณและยังบันทึกบันทึกและสถิติอื่น ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.