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