FIX STOR 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.

I likhet med ethvert CMS er Woo ikke noe unntak fra rariteter som kan oppstå i forskjellige scenarier for bruk eller interaksjon med andre WordPress-plugins.
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 nok for en tabell som inneholder de planlagte 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 Shops via plugin "Facebook for WooCommerce", Det synkroniserer automatisk WooCommerce-produkter med Facebook Shops-kontoen din. Og han gjør det på omtrent 15 minutter. 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 funksjonene / 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; } );

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".

Lidenskapelig om teknologi, jeg liker å teste og skrive opplæringsprogrammer om operativsystemer macOS, Linux, Windows, om WordPress, WooCommerce og LEMP webserverkonfigurasjon (Linux, NGINX, MySQL og PHP). Jeg skriver videre StealthSettings.com siden 2006, og noen år senere begynte jeg å skrive på iHowTo.Tips tutorials og nyheter om enheter i økosystemet. Apple: iPhone, iPad, Apple Se, HomePod, iMac, MacBook, AirPods og tilbehør.

En tanke på “FIX STOR 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
    Netzie

    Svar

Legg igjen en kommentar