वर्डप्रेस "क्रोन" wp_schedule_event को कैसे डीबग करें


22

मैं वर्डप्रेस क्रोन के साथ समस्याओं को कैसे डिबग कर सकता हूं? मुझे लगता है कि जब उपयोगकर्ता आपकी साइट पर जाएंगे तो यह ट्रिगर हो जाएगा, लेकिन कोई भी त्रुटि उन्हें दिखाई नहीं देगी, क्योंकि नौकरियां "असिंक्रोनस" चल रही हैं। तो मैं त्रुटियों को कैसे मिटा सकता हूं?

मैं उपयोग करता हूं wp schedule event


1
यह प्रलेखन पढ़ें: developer.wordpress.org/plugins/cron/…
नन्हे कुमार

उन्नत क्रोन प्रबंधक प्लगइन का उपयोग करें
अतिथि

जवाबों:


27

आप कॉल करके मैन्युअल रूप से WP क्रॉन चला सकते हैं: http://example.com/wp-cron.php?doing_wp_cron

यदि आप डिबगिंग करते समय स्वचालित क्रोन नहीं चलाना चाहते हैं, तो इसे अपनी /wp-config.phpफ़ाइल में जोड़ें :

define('DISABLE_WP_CRON', true);

यदि आप एक विकास के माहौल पर हैं और डिबग जानकारी को आउटपुट करना चाहते हैं, तो इसे मैन्युअल रूप से कॉल करना आपको अपना डिबग आउटपुट दिखाएगा।

वैकल्पिक रूप से आप डिबगिंग के लिए त्रुटि लॉग में संदेश स्ट्रिंग लॉग करने के लिए PHP के अंतर्निहित error_log फ़ंक्शन का उपयोग कर सकते हैं । आपको WP_DEBUG सेटिंग्स के साथ संयोजन के रूप में इसका उपयोग करने की आवश्यकता होगी , जैसा कि रार्स्ट ने उल्लेख किया है।


?doing_cronपैरामीटर के साथ संकेत के लिए धन्यवाद ।
रॉफ्लोक्स

3
मेरा मानना ​​है कि इसके ?doing_wp_cronबजाय होना चाहिए ?doing_cron
liviucmg

@liviucmg हां, आप सही कह रहे हैं। मैंने ट्वीक किया है।
साइमन ईस्ट

1
क्या ?doing_wp_cronपैरामीटर आवश्यक है? देखें EasyCron मैनुअल सेट ट्यूटोरियल अप
एलेक्रस्ट

@gabrielk? do_cron पैरामीटर की आवश्यकता है? इसका क्या मतलब है?
जेडी

6

आप प्लगइन क्रोन-व्यू का उपयोग कर सकते हैं । वहां आप देख सकते हैं कि आपकी नौकरी क) पंजीकृत है और ख) अगले नियत समय क्या है।

इसके अलावा, आप अपने ईवेंट में कम शेड्यूल-टाइमर जोड़ सकते हैं (उदाहरण के लिए प्रत्येक 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

आप मैन्युअल रूप से डीबग कर सकते हैं, एक्शन बनाकर और क्रॉन एक्शन को अंदर कर सकते हैं। ऐशे ही:

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

यह आपको क्रोन कार्य के साथ किसी भी त्रुटि को दिखाना चाहिए।

लेकिन यह बिना किसी अर्थ के इसे मैन्युअल रूप से कर रहा है। आप उन्नत क्रोन प्रबंधक प्रो प्लगइन का उपयोग कर सकते हैं जो आपके लिए ऐसा करता है और लॉग और अन्य आँकड़े भी बचाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.