תקן טבלאות SQL ענקיות: wp_actionscheduler_actions & wp_actionscheduler_logs [עצות WooCommerce]

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

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

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

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

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

פתח את קובץ הפונקציות / 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".

תקן טבלאות SQL ענקיות: wp_actionscheduler_actions & wp_actionscheduler_logs [עצות WooCommerce]

על הסופר

התגנבות

נלהב מכל דבר גאדג'ט ו- IT, אני כותב בהנאה על התגנבותsettings.com מאז 2006 ואני רוצה לגלות איתך דברים חדשים על מחשבים ומערכות הפעלה macמערכת הפעלה, לינוקס, Windows, iOS ואנדרואיד.

השאירו תגובה