RETS KÆMPE SQL-tabeller: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

WooCommerce det er blevet et meget brugt modul online butikker. SEO, produkt- og lagerstyring, ren og intuitiv kode, enkel administrationsgrænseflade og de tusindvis af plugins udviklet til Woo, er blot nogle af grundene til, at det fortjener en chance, når du tænker på at udvikle en online butik.

Som ethvert CMS er Woo ingen undtagelse fra de mærkværdigheder, der kan forekomme i forskellige brugs- eller interaktionsscenarier med andre plugins. WordPress.
På en ressource server hardware ganske generøs, det bemærkede jeg databasetjeneste (mysqld) begynder at kræve næsten 80-90% af RAM. Et ret alvorligt problem, fordi jeg bare ikke forstod, hvor fejl 110 kommer fra med jævne mellemrum (110: Timeout for forbindelse).
Ved nærmere undersøgelse af SQL-processer fandt jeg ud af, at en database har to tabeller med ret store volumener: wp_actionscheduler_actions si wp_actionscheduler_logs.

Normalt planlagte handlinger af WooCommerce Handlingsplanlægger de skal slettes automatisk, når de er udført. Dette sker ikke altid, og de sidder fast i wp_actionsscheduler_actions med status: mislykkedes, aflyst, verserende eller fuldføre.

På billedet ovenfor er tabellerne "wp_actionsscheduler"De har kun lidt over 15 MB. Jeg er ked af, at jeg ikke blev inspireret til at tage et skærmbillede, da de havde det 1.2 DK. Alligevel er 15 MB ret meget for en tabel, der indeholder de programmerede handlinger WooCommerce.
Disse "hævede" tabeller skyldes det WP-Cron sletter ikke poster der har status "mislykkedes","aflyst"Og"fuldføre“. Normalt skal disse poster automatisk slettes fra databasen.
De planlagte handlinger og deres tilstand kan ses meget let og i WooCommerce →  Status →  Planlagte handlinger.

Sådan rengøres tagrenderne "mislykkedes","aflyst"Og"fuldføre"I wp_actionscheduler_actions si wp_actionscheduler_logs

Vi får adgang til databasen gennem phpMyAdmin, så i SQL udfører vi kommandolinjerne på skift:

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 tabel er renset, betyder det ikke, at problemet er løst. Som jeg sagde ovenfor, er hovedårsagen deaktivering af WP-Cron-tjenesten af ​​forskellige årsager. Således kan poster med "zombie" -status ikke længere slettes.
Det er meget vigtigt at vide, at hvis du har en netbutik på WooCommerce, og den er forbundet til Facebook-butikker via pluginnet "Facebook til WooCommerce", synkroniserer den automatisk produkterne fra WooCommerce med din Facebook Shops-konto. Og han gør det hvert 15. minut. Hvis disse SQL-indgange ikke kontrolleres, kan du få flere hundrede tusinde linjer"wc_facebook_genereret_feed"I"wp_actionscheduler_actions".

Dette interval er ok for butikker, der har et stort antal ordrer, og lageret af Facebook Shops-produkter skal løbende opdateres. Hvis du stadig mener, at disse synkroniseringer mellem Facebook og din butik kan udføres hver 24. time, kan nedenstående kodelinje hjælpe.

Åbn functions.php-filen for temaet WordPress / WooCommerce som din butik kører på, og tilføj:

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

Dernæst kan vi indstille et interval på en uge til automatisk rengøring:

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

Når du har gemt disse ændringer, har du ingen problemer med gigantiske tabeller til "wp_actionscheduler_actions".

Teknologientusiast, jeg skriver med glæde på StealthSettings.com siden 2006. Jeg har rig erfaring med operativsystemer: macOS, Windows og Linux, samt programmeringssprog og blogplatforme (WordPress) og til onlinebutikker (WooCommerce, Magento, PrestaShop).

Hvordan man » Curiosity » RETS KÆMPE SQL-tabeller: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

1 tanke om “RET KÆMPE SQL-tabeller: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]"

  1. @Stealth
    Tak for hjælppen. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min webshop. Mange plugins er begyndt at dumpe deres output i den tabel og det fylder ... Wooping 9.2GB tabel fik min vært til at opgive hans ellers fine opp-tid. Nu trimmer jeg med den fine kode!
    Lige og spørgsmål på falde rebet denne tabel “wpb_action_scheduler_purge” er det en default i db'en eller skal jeg evt. omdøb den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Tak for hjælppen og den super fine artikel

    Med venlig hilsen
    Netværk

    Svar
Efterlad en kommentar