door

1

Herstel enorme SQL -tabellen: wp_actionscheduler_actions & wp_actionscheduler_logs [wooCommerce tips]

Herstel enorme SQL -tabellen: wp_actionscheduler_actions & wp_actionscheduler_logs [wooCommerce tips]

1

Woocommerce het is door steeds meer mensen een veelgebruikte module geworden tijdschrift online. SEO, product- en voorraadbeheer, schone en intuïtieve code, eenvoudige beheerinterface en de duizenden plug-ins die voor Woo zijn ontwikkeld, zijn slechts enkele van de redenen waarom het een kans verdient als je denkt aan het ontwikkelen van een online winkel.

Zoals elk CMS is Woo niet vrijgesteld van de eigenaardigheden die kunnen voorkomen in verschillende gebruiksscenario's of interactie met andere WordPress-plug-ins.
Op een server met bronnen hardware best genereus, dat heb ik gemerkt database-service ((mijnsqld) begint bijna 80 aan te vragen– 90% van het RAM-geheugen. Een nogal serieus probleem, omdat ik simpelweg niet begreep waar de fout 110 periodiek vandaan komt (110: Er is een time-out voor de verbinding opgetreden).
Bij nadere inspectie van de SQL-processen ontdekte ik dat één database twee tabellen heeft met behoorlijk aanzienlijke volumes: wp_actionscheduler_actions En wp_actionscheduler_logs.

In mod normaal geplande acties Maar WooCommerce Actieplanner ze moeten automatisch worden verwijderd nadat ze zijn uitgevoerd. Dit gebeurt niet altijd en ze blijven geblokkeerd in wp_actionsscheduler_actions met de status: mislukt, geannuleerd, in behandeling of compleet.

In de afbeelding hierboven de tabellen “wp_actionscheduler” 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 deden1,2 GB. Toch is 15 MB best veel voor een tabel die geplande WooCommerce-acties bevat.
Deze tafels “OPGEBLAZEN” het komt voort uit ca WP-Cron verwijdert geen vermeldingen zorg au status “mislukt“, “geannuleerd” En “compleet“. Normaal gesproken moeten deze vermeldingen automatisch uit de database worden verwijderd.
De geprogrammeerde acties en hun status zijn heel eenvoudig te zien in WoocommerceStatusGeplande acties.

Hoe maken wij de riolering schoon? “mislukt“, “geannuleerd” En “compleet” VANwp_actionscheduler_actions En wp_actionscheduler_logs

We hebben toegang tot de database via phpMyAdmin en vervolgens voeren we in SQL achtereenvolgens de opdrachtregels uit:

VERWIJDEREN VAN `wp_actionscheduler_actions` WAAR `status` = 'geannuleerd'
VERWIJDER UIT `wp_actionscheduler_actions` WAAR `status` = 'voltooid'
VERWIJDER UIT `wp_actionscheduler_actions` WAAR `status` = 'mislukt'

Als deze tafel eenmaal is schoongemaakt, betekent dit niet dat het probleem is opgelost. Zoals ik hierboven al zei, is de belangrijkste oorzaak de deactivering van de WP-Cron-service om verschillende redenen. Dus de vermeldingen met statussen “zombie” ze kunnen niet langer worden verwijderd.
Het is erg belangrijk om te weten dat als je een online winkel hebt op WooCommerce, en deze via de plug-in is verbonden met Facebook Shops “Facebook voor WooCommerce“synchroniseert het WooCommerce-producten automatisch met uw Facebook Shops-account. En hij doet het elke 15 minuten. Als deze SQL-invoeren niet worden beheerd, kunt u enkele honderdduizenden regels krijgen “wc_facebook_regenerate_feed” in “wp_actionscheduler_actions“.

Dit interval is prima voor winkels met een groot aantal bestellingen en het is noodzakelijk dat de voorraad producten in Facebook Shops voortdurend wordt bijgewerkt. Als u nog steeds denkt dat deze synchronisaties tussen Facebook en uw winkel eens in de 24 uur kunnen worden gedaan, kan de onderstaande coderegel u helpen.

Open het function.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');
functie wpb_action_scheduler_purge() {
 retour WEEK_IN_SECONDS;
}

Zodra deze wijzigingen zijn opgeslagen, heeft u geen problemen meer met gigantische tabellen “wp_actionscheduler_actions”.

Herstel enorme SQL -tabellen: wp_actionscheduler_actions & wp_actionscheduler_logs [wooCommerce tips]

Mogelijk bent u ook geïnteresseerd in...

Eén gedachte verder “Herstel enorme SQL -tabellen: wp_actionscheduler_actions & wp_actionscheduler_logs [wooCommerce tips]

  1. Netzie zegt:

    @ Stealth
    Bedankt voor de hulp. Jij redt mijn dag en winkelt. Ik ontdekte dit pas na een crash van mijn webshop. Veel plug-ins zijn begonnen hun uitvoer in die tabel te dumpen en deze raakt vol… Een tafel van 9,2 GB zorgde ervoor dat mijn gastheer zijn anderszins prima opp-tijd opgaf. Nu trim ik met de leuke code!
    Even een vraag over het hangtouw van deze tafel “wpb_action_scheduler_purge” is dit een standaard in de db of moet ik het hernoemen naar iets in mijn (standaard heet mijn db niet 'wp_’ ) of is het misschien een functie?
    Bedankt voor de hulp en het superleuke artikel

    Groet
    Netzie

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd *