FIX बड़ी SQL टेबल: wp_actionscheduler_actions और wp_actionscheduler_logs [WooCommerce Tips]

WooCommerce यह एक व्यापक रूप से इस्तेमाल किया जाने वाला मॉड्यूल बन गया है ऑनलाइन की दुकानें. एसईओ, उत्पाद, इन्वेंट्री प्रबंधन, स्वच्छ और सहज ज्ञान युक्त कोड, सरल प्रशासन इंटरफ़ेस और वू के लिए विकसित हजारों प्लगइन्स, ऐसे कुछ तर्क हैं जिनके लिए यह एक मौका के लायक है जब आप ऑनलाइन स्टोर विकसित करने के बारे में सोचते हैं।

किसी भी सीएमएस की तरह, वू उन विषमताओं का अपवाद नहीं है जो अन्य वर्डप्रेस प्लगइन्स के साथ उपयोग या इंटरैक्शन के विभिन्न परिदृश्यों में हो सकती हैं।
एक संसाधन सर्वर पर हार्डवेयर काफी उदार, मैंने देखा कि डेटाबेस सेवा (mysqld) को लगभग 80-90% RAM की आवश्यकता होती है। एक बहुत गंभीर समस्या है, क्योंकि मुझे समझ में नहीं आया कि समय-समय पर त्रुटि 110 कहाँ से आती है (110: कनेक्शन समयबद्ध).
SQL प्रक्रियाओं के करीब से निरीक्षण करने पर, मैंने पाया कि एक डेटाबेस में काफी बड़े वॉल्यूम के साथ दो टेबल हैं: wp_actionscheduler_actions si wp_actionscheduler_logs.

आम तौर पर निर्धारित कार्य की WooCommerce एक्शन शेड्यूलर निष्पादित होने के बाद उन्हें स्वचालित रूप से हटा दिया जाना चाहिए। यह हमेशा नहीं होता है, और वे स्थिति के साथ wp_actionsscheduler_actions में फंस जाते हैं: में विफल रहा है, रद्द, अपूर्ण या पूरा.

ऊपर की छवि में, तालिकाओं "wp_actionsअनुसूचक“उनके पास केवल है सिर्फ 15 एमबी से अधिक। मुझे खेद है कि जब उनके पास स्क्रीनशॉट लेने के लिए मैं प्रेरित नहीं हुआ था 1.2 जीबी। फिर भी, 15 एमबी एक मेज के लिए पर्याप्त है जिसमें WooCommerce की निर्धारित क्रियाएं शामिल हैं।
इन "सूजन" तालिकाओं से परिणाम होता है WP-Cron प्रविष्टियों को नष्ट नहीं करता है जिनके पास स्थिति है "में विफल रहा है""रद्द"और"पूरा“। आम तौर पर इन प्रविष्टियों को डेटाबेस से स्वचालित रूप से हटा दिया जाना चाहिए।
अनुसूचित कार्यों और उनके राज्य को बहुत आसानी से और अंदर देखा जा सकता है WooCommerce →  स्थिति →  अनुसूचित कार्य.

नाले की सफाई कैसे करें ”में विफल रहा है""रद्द"और"पूरा"में wp_actionscheduler_actions si wp_actionscheduler_logs

हम phpMyAdmin के माध्यम से डेटाबेस तक पहुंचते हैं, फिर SQL में हम बदले में कमांड लाइनों को निष्पादित करते हैं:

DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed'

एक बार जब यह तालिका साफ हो जाती है, तो इसका मतलब यह नहीं है कि समस्या हल हो गई है। जैसा कि मैंने ऊपर कहा, मुख्य कारण विभिन्न कारणों से WP-Cron सेवा का अक्षम होना है। इस प्रकार "ज़ोंबी" स्थिति वाली प्रविष्टियाँ अब नहीं हटाई जा सकतीं।
यह जानना बहुत महत्वपूर्ण है कि यदि आपके पास WooCommerce पर एक ऑनलाइन स्टोर है, और यह प्लगइन के माध्यम से फेसबुक की दुकानों से जुड़ा है "WooCommerce के लिए फेसबुक", यह स्वचालित रूप से आपके फेसबुक शॉप खाते के साथ WooCommerce उत्पादों को सिंक करता है। और वह इसे लगभग 15 मिनट में करता है। यदि इन SQL प्रविष्टियों को नियंत्रित नहीं किया जाता है, तो आप कई सौ हज़ार लाइनें प्राप्त कर सकते हैं। "wc_facebook_regenerate_feed"में"wp_actionscheduler_actions".

यह अंतराल उन दुकानों के लिए ठीक है जिनके पास बड़ी संख्या में ऑर्डर हैं और फेसबुक शॉप्स उत्पादों के स्टॉक को लगातार अपडेट करने की आवश्यकता है। यदि आप अभी भी सोचते हैं कि फेसबुक और आपके स्टोर के बीच ये सिंक हर 24 घंटे में एक बार किया जा सकता है, तो नीचे दी गई कोड की लाइन मदद कर सकती है।

वर्डप्रेस / WooCommerce थीम के फ़ंक्शन / php फ़ाइल खोलें, जिस पर आपका स्टोर चल रहा है और जोड़ें:

add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );

नीचे हम स्वचालित सफाई के लिए एक सप्ताह का अंतराल निर्धारित कर सकते हैं:

add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
function wpb_action_scheduler_purge() {
 return WEEK_IN_SECONDS;
}

एक बार जब आप इन परिवर्तनों को सहेज लेते हैं, तो आपको "wp_actionscheduler_actions" के लिए विशाल तालिकाओं के साथ कोई समस्या नहीं होगी।

FIX बड़ी SQL टेबल: wp_actionscheduler_actions और wp_actionscheduler_logs [WooCommerce Tips]

लेखक के बारे में

छल

सब कुछ गैजेट और आईटी के बारे में भावुक, मैं चुपके से खुशी के साथ लिखता हूंsettings.com 2006 से और मुझे आपके साथ कंप्यूटर और ऑपरेटिंग सिस्टम के बारे में नई चीजें खोजना पसंद है macओएस, लिनक्स, Windows, iOS और Android।

एक टिप्पणी छोड़ दो