ved

1

Fix enorme SQL -tabeller: WP_Actionscheduler_Actions & wp_actionscheduler_logs [WooCommerce tips]

Fix enorme SQL -tabeller: WP_Actionscheduler_Actions & wp_actionscheduler_logs [WooCommerce tips]

1

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 WooCommerceStatusPlanlagte 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]

Du kan også være interessert i...

En tenkte på “Fix enorme SQL -tabeller: WP_Actionscheduler_Actions & wp_actionscheduler_logs [WooCommerce tips]

  1. Netzie sier:

    @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

Legg igjen et svar

E-postadressen din vil ikke bli publisert. Nødvendige felt er merket *