תקן טבלאות SQL ענקיות: wp_actionscheduler_actions ו-wp_actionscheduler_logs [WooCommerce טיפים]

WooCommerce זה הפך למודול בשימוש נרחב חנויות מקוונות. קידום אתרים, מוצר, ניהול מלאי, קוד נקי ואינטואיטיבי, ממשק ניהול פשוט ואלפי תוספים שפותחו עבור Woo, הם רק חלק מהטיעונים לגביהם שווה סיכוי כשאתה חושב לפתח חנות מקוונת.

כמו כל CMS, Woo אינה יוצאת דופן למוזרויות שיכולות להתרחש בתרחישי שימוש או אינטראקציה שונים עם תוספים אחרים. WordPress.
בשרת משאבים חומרה די נדיב, שמתי לב לזה שירות מסדי נתונים (mysqld) מתחיל לדרוש כמעט 80-90% מה- RAM. בעיה די רצינית, כי פשוט לא הבנתי מאיפה מגיעה שגיאה 110 מעת לעת (110: תם הזמן הקצוב לחיבור).
בבדיקה מדוקדקת יותר של תהליכי SQL, מצאתי כי מסד נתונים כולל שתי טבלאות עם נפחים גדולים למדי: wp_actionscheduler_actions si wp_actionscheduler_logs.

בדרך כלל פעולות מתוזמנות של WooCommerce מתזמן פעולות יש למחוק אותם אוטומטית לאחר ביצועם. זה לא תמיד קורה, והם נתקעים ב wp_actionsscheduler_actions עם הסטטוס: נכשל, מבוטל, תלוי ועומד או להשלים.

בתמונה למעלה הטבלאות "מתזמן wp_actionsschuler"יש להם רק קצת יותר מ 15 מגה בייט. אני מצטער שלא קיבלתי השראה לצילום מסך כשהיה להם 1.2 GB. למרות זאת, 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 עם חשבון ה-Facebook Shops שלך. והוא עושה את זה כל 15 דקות. ערכי SQL אלה אם לא נשלטים, אתה יכול לקבל כמה מאות אלפי שורות"wc_facebook_regenerate_feed"ב-"wp_actionscheduler_actions

מרווח זה תקין לחנויות שיש להם מספר רב של הזמנות, ומלאי המוצרים של Facebook Shops צריך להתעדכן כל הזמן. אם אתה עדיין חושב שניתן לבצע סינכרונים אלה בין פייסבוק לחנות שלך אחת ל -24 שעות, שורת הקוד שלמטה יכולה לעזור.

פתח את קובץ functions.php של ערכת הנושא WordPress / WooCommerce שעליו פועלת החנות שלך והוסיפו:

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".

כחובב טכנולוגיה, אני כותב בשמחה ב- StealthSettings.com מאז 2006. יש לי ניסיון עשיר במערכות הפעלה: macOS, Windows, ו- Linux, וגם בשפות תכנות ופלטפורמות בלוגינג (WordPress) ולסוחרת אלקטרונית (WooCommerce, Magento, PrestaShop).

איך » סקרנות » תקן טבלאות SQL ענקיות: wp_actionscheduler_actions ו-wp_actionscheduler_logs [WooCommerce טיפים]

מחשבה אחת על "תקן טבלאות SQL ענקיות: wp_actionscheduler_actions ו-wp_actionscheduler_logs [WooCommerce טיפים]"

  1. @Stealth
    טאק לסילפן. Du redder min dag og shop. Jeg opdagede first this efter et nedbrud af min webshop. תוספים רבים מתחילים בהפקת הדומם שלהם בטבלה ושולחן ... Wooping 9.2GB טבלה קיבלה את המארח עד שהפך את הנעלם שלו בסדר. Nu trimmer jeg med den fine code!
    Lige et שאלות ב falde rebet this table "wpb_action_scheduler_purge" er det en default i db'en או skal jeg evt. שנה את שם den til noget i min (default hedder min db ikke 'wp_') או er det אולי en function?
    טאק עבור שירותפן ואוגן מאמר סופר משובח

    הילסן
    נצי

    תגובה
השאירו תגובה