Fix enorme SQL -tabeller: WP_Actionscheduler_Actions & wp_actionscheduler_logs [WooCommerce tips]
WooCommerce det har blitt en veldig brukt modul av flere og flere magasin på nett. Seo, produkt- og lagerstyring, ren og intuitiv kode, enkelt administrasjonsgrensesnitt og de tusenvis av plugins utviklet for Woo, er bare noen av grunnene til at det fortjener en sjanse når du tenker på å utvikle en nettbutikk.
Som ethvert CMS, er Woo ikke unntatt fra raritetene som kan dukke opp i forskjellige scenarier for bruk eller interaksjon med andre WordPress-plugins.
På en server med ressurser maskinvare ganske raus, det la jeg merke til databasetjeneste (mysqld) begynner å be om nesten 80– 90 % av RAM. Et ganske alvorlig problem, fordi jeg rett og slett ikke forsto hvor feilen 110 periodisk kommer fra (110: Tilkoblingen ble tidsavbrutt).
Ved nærmere inspeksjon av SQL-prosessene oppdaget jeg at en database har to tabeller med ganske betydelige volumer: wp_actionscheduler_actions og wp_actionscheduler_logs.
I mod normalt planlagte handlinger men WooCommerce handlingsplanlegger de skal slettes automatisk etter at de er utført. Dette skjer ikke alltid, og de forblir blokkert i wp_actionsscheduler_actions med statusen: mislyktes, kansellert, i påvente av eller fullstendig.
På bildet over, tabellene “wp_actionsscheduler” de bare har litt over 15 MB. Jeg beklager at jeg ikke ble inspirert til å ta et skjermbilde da de gjorde det1,2 GB. Likevel er 15 MB ganske mye for en tabell som inneholder planlagte WooCommerce-handlinger.
Disse tabellene “UPPLAST” det kommer av ca WP-Cron sletter ikke oppføringer omsorg au status “mislyktes“, “kansellert” og “fullstendig“. Normalt må disse oppføringene automatisk slettes fra databasen.
De programmerte handlingene og deres status kan sees veldig enkelt i WooCommerce →Status →Planlagte handlinger.
Hvordan renser vi avløpene? “mislyktes“, “kansellert” og “fullstendig” FRAwp_actionscheduler_actions og wp_actionscheduler_logs
Vi får tilgang til databasen gjennom phpMyAdmin, så i SQL utfører vi kommandolinjene etter tur:
SLETT FRA `wp_actionscheduler_actions` HVOR `status` = 'avbrutt'
SLETT FRA `wp_actionscheduler_actions` HVOR `status` = 'fullført'
SLETT FRA `wp_actionscheduler_actions` HVOR `status` = 'mislyktes'
Når dette bordet er rengjort, betyr det ikke at problemet er løst. Som jeg sa ovenfor, er hovedårsaken deaktiveringen av WP-Cron-tjenesten av forskjellige grunner. Dermed oppføringene med statuser “zombie” de kan ikke lenger slettes.
Det er veldig viktig å vite at hvis du har en nettbutikk på WooCommerce, og den er koblet til Facebook Shops gjennom plugin “Facebook for WooCommerce“, synkroniserer den automatisk WooCommerce-produkter med Facebook Shops-kontoen din. Og han gjør det hvert 15. minutt. Hvis disse SQL-oppføringene ikke er kontrollert, kan du få flere hundre tusen linjer “wc_facebook_regenerate_feed” i “wp_actionscheduler_actions“.
Dette intervallet er ok for butikker som har et stort antall bestillinger og det er nødvendig at varelageret i Facebook Shops oppdateres kontinuerlig. Hvis du fortsatt tror at disse synkroniseringene mellom Facebook og butikken din kan gjøres en gang hver 24. time, kan kodelinjen nedenfor hjelpe deg.
Åpne functions.php-filen til WordPress / WooCommerce-temaet som butikken din kjører på, og legg til:
add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );
Deretter kan vi angi et intervall på en uke for automatisk rengjøring:
add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
funksjon wpb_action_scheduler_purge() {
returner WEEK_IN_SECONDS;
}
Når disse endringene er lagret, vil du ikke lenger ha problemer med gigantiske tabeller for “wp_actionscheduler_actions”.
Fix enorme SQL -tabeller: WP_Actionscheduler_Actions & wp_actionscheduler_logs [WooCommerce tips]
Hva er nytt
Om Stealth
Lidenskapelig opptatt av teknologi, skriver jeg med glede på StealthSettings.com siden 2006. Jeg har rik erfaring innen operativsystemer: macOS, Windows og Linux, men også innen programmeringsspråk og plattformer for blogging (WordPress) og for nettbutikker (WooCommerce, Magento, PrestaShop).
Se alle innlegg av StealthDu kan også være interessert i...



En tenkte på “Fix enorme SQL -tabeller: WP_Actionscheduler_Actions & wp_actionscheduler_logs [WooCommerce tips]”
@Stealth
Takk for hjelpen. Du redder dagen min og handler. Jeg oppdaget dette først etter et krasj i nettbutikken min. Mange plugins har begynt å dumpe utdataene sine i den tabellen, og den fylles opp… Wooping 9,2 GB bord fikk verten min til å gi opp sin ellers fine kamptid. Nå trimmer jeg med den fine koden!
Bare et spørsmål om falltau dette bordet “wpb_action_scheduler_purge” er det en standard i db eller må jeg endre navn til noe i min (som standard heter ikke min db 'wp_’ ) eller er det kanskje en funksjon?
Takk for hjelpen og den superfine artikkelen
Hilsen
Netzie