FIX ENORME SQL-tabellen: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

WooCommerce het is een veelgebruikte module geworden online winkels. SEO, product, voorraadbeheer, schone en intuïtieve code, eenvoudige beheerinterface en duizenden plug-ins ontwikkeld voor Woo, zijn slechts enkele van de argumenten waarvoor het de moeite waard is als je eraan denkt om een ​​online winkel te ontwikkelen.

Zoals elk CMS is Woo geen uitzondering op de eigenaardigheden die kunnen optreden in verschillende gebruiksscenario's of interactie met andere WordPress-plug-ins.
Op een bronserver hardware best gul, dat merkte ik databaseservice (mysqld) begint bijna 80-90% RAM te vereisen. Een behoorlijk serieus probleem, omdat ik gewoon niet begreep waar fout 110 periodiek vandaan komt (110: Time-out verbinding).
Bij nadere inspectie van SQL-processen ontdekte ik dat een database twee tabellen heeft met vrij grote volumes: wp_actionscheduler_actions si wp_actionscheduler_logs.

normaal geplande acties van WooCommerce-actieplanner ze moeten automatisch worden verwijderd nadat ze zijn uitgevoerd. Dit gebeurt niet altijd, en ze komen vast te zitten in wp_actionsscheduler_actions met de status: mislukt, geannuleerd, in afwachting van of compleet.

In de bovenstaande afbeelding zijn de tabellen "wp_actionsscheduler"Ze hebben alleen iets meer dan 15 MB. Het spijt me dat ik niet geïnspireerd was om een ​​screenshot te maken toen ze dat wel hadden 1.2 GB. Toch is 15 MB genoeg voor een tabel die de geplande acties van WooCommerce bevat.
Deze "gezwollen" tafels zijn daaruit het resultaat WP-Cron verwijdert geen vermeldingen die status hebben "mislukt","geannuleerd"En"compleet“. Normaal gesproken moeten deze vermeldingen automatisch uit de database worden verwijderd.
De geplande acties en hun status zijn heel gemakkelijk en in te zien WooCommerce →  Status →  Geplande acties.

Hoe de dakgoten te reinigen "mislukt","geannuleerd"En"compleet"In wp_actionscheduler_actions si wp_actionscheduler_logs

We hebben toegang tot de database via phpMyAdmin, en vervolgens voeren we bij SQL de opdrachtregels om de beurt uit:

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

Als deze tafel eenmaal is schoongemaakt, betekent dit niet dat het probleem is opgelost. Zoals ik hierboven al zei, is de belangrijkste oorzaak het uitschakelen van de WP-Cron-service om verschillende redenen. Zo kunnen items met de status "zombie" niet meer worden verwijderd.
Het is erg belangrijk om te weten dat als je een online winkel hebt op WooCommerce, en deze is verbonden met Facebook Shops via de plug-in "Facebook voor WooCommerce", Het synchroniseert automatisch WooCommerce-producten met uw Facebook Shops-account. En hij doet het in ongeveer 15 minuten. Als deze SQL-vermeldingen niet worden gecontroleerd, kunt u enkele honderdduizenden regels krijgen. "wc_facebook_regenerate_feed"In"wp_actionscheduler_actions'.

Dit interval is oké voor winkels met een groot aantal bestellingen en de voorraad van Facebook Shops-producten moet constant worden bijgewerkt. Als u nog steeds denkt dat deze synchronisaties tussen Facebook en uw winkel eenmaal per 24 uur kunnen worden uitgevoerd, kan de onderstaande coderegel helpen.

Open het functies / php-bestand van het WordPress / WooCommerce-thema waarop uw winkel draait en voeg toe:

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

Vervolgens kunnen we een interval van een week instellen voor automatische reiniging:

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

Zodra u deze wijzigingen opslaat, heeft u geen problemen met gigantische tabellen voor "wp_actionscheduler_actions".

FIX ENORME SQL-tabellen: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

Over de auteur

heimelijkheid

Gepassioneerd door alles wat gadget en IT is, schrijf ik met plezier op stealthsettings.com sinds 2006 en ik vind het leuk om met jullie nieuwe dingen te ontdekken over computers en besturingssystemen macOS, Linux, Windows, iOS en Android.

Laat een bericht achter