LØS ENORME SQL-tabeller: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

WooCommerce det har blitt en mye brukt modul nettbutikker. SEO, produkt, lageradministrasjon, ren og intuitiv kode, enkelt administrasjonsgrensesnitt og tusenvis av plugins utviklet for Woo, er bare noen av argumentene som det er verdt en sjanse for når du tenker på å utvikle en nettbutikk.

Som ethvert CMS er Woo intet unntak fra raritetene som kan oppstå i forskjellige bruks- eller interaksjonsscenarier med andre plugins. WordPress.
På en ressursserver maskinvare ganske sjenerøs, jeg la merke til det databasetjeneste (mysqld) begynner å kreve nesten 80-90% av RAM. Et ganske alvorlig problem, fordi jeg bare ikke forstod hvor feil 110 kommer fra med jevne mellomrom (110: Tidsavbrudd for tilkobling).
Ved nærmere gjennomgang av SQL-prosesser fant jeg ut at en database har to tabeller med ganske store volumer: wp_actionscheduler_actions si wp_actionscheduler_logs.

normalt planlagte handlinger av WooCommerce Handlingsplanlegger de bør slettes automatisk etter at de er utført. Dette skjer ikke alltid, og de blir sittende fast i wp_actionsscheduler_actions med status: mislyktes, kansellert, påvente eller fullføre.

I bildet over viser tabellene "wp_actionsscheduler"De har bare litt over 15 MB. Jeg beklager at jeg ikke ble inspirert til å ta et skjermbilde når de hadde gjort det 1.2 GB. Likevel er 15 MB ganske mye for en tabell som inneholder de programmerte handlingene til WooCommerce.
Disse "hovne" tabellene er resultatet av det WP-Cron sletter ikke oppføringer som har status "mislyktes","kansellert"Og"fullføre“. Normalt skal disse oppføringene automatisk slettes fra databasen.
De planlagte handlingene og deres tilstand kan sees veldig enkelt og i WooCommerce →  status →  Planlagte tiltak.

Hvordan rengjøre takrennene "mislyktes","kansellert"Og"fullføre"I wp_actionscheduler_actions si wp_actionscheduler_logs

Vi får tilgang til databasen via phpMyAdmin, og deretter utfører vi kommandolinjene på SQL i sin tur:

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

Når denne tabellen er renset, betyr det ikke at problemet er løst. Som jeg sa ovenfor, er hovedårsaken deaktivering av WP-Cron-tjenesten av forskjellige grunner. Dermed kan ikke oppføringer med "zombie" -status lenger slettes.
Det er veldig viktig å vite at hvis du har en nettbutikk på WooCommerce, og den er koblet til Facebook-butikker gjennom plugin-en "Facebook-forum WooCommerce", synkroniserer den automatisk produktene fra WooCommerce med din Facebook Shops-konto. Og han gjør det hvert 15. minutt. Hvis disse SQL-oppføringene ikke kontrolleres, 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 lageret av Facebook Shops-produkter må oppdateres kontinuerlig. Hvis du fremdeles tror at disse synkroniseringene mellom Facebook og butikken din kan gjøres en gang i døgnet, kan kodelinjen nedenfor hjelpe.

Åpne functions.php-filen til temaet WordPress / WooCommerce som butikken din kjører på og legg til:

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

Nedenfor kan vi angi et intervall på en uke for automatisk rengjøring:

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

Når du har lagret disse endringene, har du ingen problemer med gigantiske tabeller for "wp_actionscheduler_actions".

Teknologiinteressert, jeg skriver med glede på StealthSettings.com siden 2006. Jeg har bred erfaring med operativsystemer: macOS, Windows og Linux, samt programmeringsspråk og bloggplattformer (WordPress) og for nettbutikker (WooCommerce, Magento, PrestaShop).

Hvordan » nysgjerrighet » LØS ENORME SQL-tabeller: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

1 tanke om “LØS ENORME SQL-tabeller: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]"

  1. @Stealth
    Tak for hjelppen. Du redder min dag og shop. Jeg opdagede først dette etter et nedbrud av min nettbutikk. Mange plugins er begyndt at dumpe deres output i den tabel og det fylder ... Wooping 9.2GB tabel fik min host til at opgive hans ellers fine opp-tid. Nu trimmer jeg med den fine kode!
    Lige og spørsmål på falde rebet denne tabellen “wpb_action_scheduler_purge” er det en default i db'en eller skal jeg evt. endre navn på den til noget i min (default hedder min db ikke 'wp_') eller er det kanskje en funksjon?
    Tak for hjelppen og den super fine artikel

    Hilsen
    Nettverk

    Svar
Legg igjen en kommentar