Labot milzīgas SQL tabulas: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce padomi]

WooCommerce tas ir kļuvis par plaši izmantotu moduli interneta veikali. SEO, produkta, krājumu pārvaldība, tīrs un intuitīvs kods, vienkārša administrēšanas saskarne un tūkstošiem Woo izstrādāto spraudņu ir tikai daži no argumentiem, kuru dēļ ir vērts izmantot iespēju domāt par tiešsaistes veikala izveidi.

Tāpat kā jebkura CMS, arī Woo nav izņēmums no dīvainībām, kas var rasties dažādos lietošanas scenārijos vai mijiedarbībā ar citiem WordPress spraudņiem.
Resursu serverī detaļas diezgan dāsna, es to pamanīju datu bāzes pakalpojums (mysqld) sāk pieprasīt gandrīz 80-90% RAM. Diezgan nopietna problēma, jo es vienkārši nesapratu, no kurienes periodiski rodas 110. kļūda (110: savienojuma noildze).
Rūpīgāk pārbaudot SQL procesus, es atklāju, ka datu bāzē ir divas tabulas ar diezgan lieliem apjomiem: wp_actionscheduler_actions si wp_actionscheduler_logs.

normāli plānotās darbības no WooCommerce darbību plānotājs pēc izpildes tos vajadzētu izdzēst automātiski. Tas ne vienmēr notiek, un viņi iestrēgst wp_actionsscheduler_actions ar statusu: neizdevās, atcelts, līdz vai pilnīgs.

Augšējā attēlā tabulas "wp_actionsscheduler"Viņiem ir tikai nedaudz vairāk par 15 MB. Man žēl, ka man nebija iedvesmas uzņemt ekrānuzņēmumu, kad viņi to izdarīja 1.2 GB. Pat tad 15 MB ir pietiekami tabulai, kurā ir plānotās WooCommerce darbības.
Šīs "pietūkušās" tabulas izriet no tā WP-Cron neizdzēš ierakstus kuriem ir statuss "neizdevās","atcelts"Un"pilnīgs“. Parasti šie ieraksti automātiski jāizdzēš no datu bāzes.
Paredzētās darbības un to stāvokli var redzēt ļoti viegli un iekšēji WooCommerce →  Status →  Plānotās darbības.

Kā notekas notekcaurules "neizdevās","atcelts"Un"pilnīgs"In wp_actionscheduler_actions si wp_actionscheduler_logs

Mēs piekļūstam datu bāzei, izmantojot phpMyAdmin, pēc tam SQL izpildām komandrindas pēc kārtas:

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

Kad šī tabula ir iztīrīta, tas nenozīmē, ka problēma ir atrisināta. Kā jau teicu iepriekš, galvenais iemesls ir WP-Cron pakalpojuma atspējošana dažādu iemeslu dēļ. Tādējādi ierakstus ar “zombiju” statusu vairs nevar izdzēst.
Ir ļoti svarīgi zināt, ka, ja jums ir tiešsaistes veikals vietnē WooCommerce, un tas ir savienots ar Facebook veikaliem, izmantojot spraudni "Facebook par WooCommerce", Tas automātiski sinhronizē WooCommerce produktus ar jūsu Facebook Shops kontu. Un viņš to izdara apmēram 15 minūtēs. Ja šie SQL ieraksti netiek kontrolēti, varat iegūt vairākus simtus tūkstošus rindiņu. "wc_facebook_regenerate_feed" iekš "wp_actionscheduler_actions".

Šis intervāls ir piemērots veikaliem, kuriem ir liels pasūtījumu skaits, un Facebook Shops produktu krājumi ir pastāvīgi jāatjaunina. Ja jūs joprojām domājat, ka šīs sinhronizācijas starp Facebook un jūsu veikalu var veikt reizi 24 stundās, zemāk esošā koda rindiņa var palīdzēt.

Atveriet motora WordPress / WooCommerce funkcijas / php failu, kurā darbojas jūsu veikals, un pievienojiet:

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

Tālāk mēs varam iestatīt vienas nedēļas intervālu automātiskai tīrīšanai:

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

Pēc šo izmaiņu saglabāšanas jums nebūs problēmu ar milzu tabulām “wp_actionscheduler_actions”.

Aizraujos ar tehnoloģijām, man patīk testēt un rakstīt pamācības par operētājsistēmām macOS, Linux, Windows, par WordPress, WooCommerce un LEMP tīmekļa servera konfigurāciju (Linux, NGINX, MySQL un PHP). Es rakstu tālāk StealthSettings.com kopš 2006. gada, un dažus gadus vēlāk es sāku rakstīt vietnē iHowTo.Tips apmācības un ziņas par ierīcēm ekosistēmā Apple: iPhone, iPad, Apple Skatīties, HomePod, iMac, MacBook, AirPods un piederumi.

1 doma par “FIX MILZĪGĀS SQL tabulas: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce padomi]”

  1. @Stealth
    Tak par hjælpen. Du redder min dag og veikals. Jeg opdagede først dette efter et nedbrud af min webshop. Pārveidot spraudņus, sākot no sākuma un ar izejas ieeju tabulā un detalizēti ... Wooping 9.2GB tabel fik min host host to opgive hans ellers fine opp-tid. Nu trimmer jeg med den fine kode!
    Labs un spørgsmål på falde rebet denne tabel “wpb_action_scheduler_purge” default i db'en eller skal jeg evt. pārdēvēt den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Tak par hjælpen og den super fine artikel

    Sveicieni
    Netsija

    atbildēt

Leave a Comment