Korjaa valtavat SQL-taulukot: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

WooCommerce siitä on tullut laajalti käytetty moduuli verkkokaupat. SEO, tuote, varastonhallinta, puhdas ja intuitiivinen koodi, yksinkertainen hallintaliittymä ja tuhannet Woo: lle kehitetyt laajennukset ovat vain muutamia argumentteja, joille kannattaa tilaisuuden kun ajatellaan verkkokaupan kehittämistä.

Kuten mikä tahansa CMS, Woo ei ole poikkeus kummallisuudesta, jota voi esiintyä eri käyttötilanteissa tai vuorovaikutuksessa muiden WordPress-laajennusten kanssa.
Resurssipalvelimella laitteisto melko antelias, huomasin sen tietokantapalvelu (mysqld) alkaa vaatia lähes 80-90% RAM-muistista. Melko vakava ongelma, koska en vain ymmärtänyt, mistä virhe 110 tulee säännöllisesti (110: Yhteys aikakatkaistiin).
Tarkastellessani lähemmin SQL-prosesseja huomasin, että tietokannassa on kaksi melko suuren määrän taulua: wp_actionscheduler_actions si wp_actionscheduler_logs.

normaalisti ajoitetut toimet of WooCommerce-toiminnan ajoitus ne tulisi poistaa automaattisesti niiden suorittamisen jälkeen. Tätä ei aina tapahdu, ja he juuttuvat wp_actionsscheduler_actions-tiloihin: epäonnistui, peruttu, odotettaessa tai täydellinen.

Yllä olevassa kuvassa taulukot "wp_actionsscheduler"Heillä on vain hieman yli 15 Mt.. Olen pahoillani, etten innoittanut ottamaan kuvakaappausta, kun heillä oli 1.2 GB. Silti 15 Mt riittää taulukolle, joka sisältää WooCommercen ohjelmoidut toiminnot.
Nämä "turvonnut" pöydät johtuvat siitä WP-Cron ei poista merkintöjä joilla on tila "epäonnistui","peruttu"Ja"täydellinen”. Normaalisti nämä merkinnät tulisi poistaa automaattisesti tietokannasta.
Ajoitetut toimet ja niiden tila voidaan nähdä helposti ja helposti WooCommerce →  tila →  Ajoitetut toimet.

Kourujen puhdistaminen "epäonnistui","peruttu"Ja"täydellinen"In wp_actionscheduler_actions si wp_actionscheduler_logs

Pääset tietokantaan phpMyAdminin kautta, sitten SQL: ssä suoritamme komentorivit vuorotellen:

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

Kun tämä taulukko on puhdistettu, se ei tarkoita, että ongelma on ratkaistu. Kuten edellä sanoin, tärkein syy on WP-Cron-palvelun poistaminen käytöstä useista syistä. Siksi merkintöjä, joiden tila on "zombie", ei voida enää poistaa.
On erittäin tärkeää tietää, että jos sinulla on verkkokauppa WooCommerce -palvelussa ja se on liitetty Facebook-kauppoihin laajennuksen kautta "Facebook for WooCommerce", Se synkronoi WooCommerce-tuotteet automaattisesti Facebook Shops -tilisi kanssa. Ja hän tekee sen noin 15 minuutissa. Jos näitä SQL-merkintöjä ei hallita, saat useita satoja tuhansia rivejä. "wc_facebook_regenerate_feed" sisään "wp_actionscheduler_actions".

Tämä väli on ok kaupoille, joilla on paljon tilauksia, ja Facebook Shops -tuotevarastoa on päivitettävä jatkuvasti. Jos uskot edelleen, että nämä synkronoinnit Facebookin ja kauppasi välillä voidaan tehdä 24 tunnin välein, alla oleva koodirivi voi auttaa.

Avaa WordPress / WooCommerce-teeman toiminnot / php-tiedosto, jolla kauppasi on käynnissä, ja lisää:

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

Seuraavaksi voimme asettaa viikon välin automaattiselle puhdistukselle:

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

Kun olet tallentanut nämä muutokset, sinulla ei ole ongelmia "wp_actionscheduler_actions" -taulukoiden jättimäisten taulukoiden kanssa.

Intohimoisesti tekniikan suhteen, haluan testata ja kirjoittaa opetusohjelmia käyttöjärjestelmistä macOS, Linux, Windows, WordPressistä, WooCommercesta ja LEMP-verkkopalvelimen määrityksistä (Linux, NGINX, MySQL ja PHP). Kirjoitan StealthSettings.com vuodesta 2006 lähtien, ja muutama vuosi myöhemmin aloin kirjoittaa iHowTo.Tips-oppaita ja uutisia ekosysteemin laitteista Apple: iPhone, iPad, Apple Katso, HomePod, iMac, MacBook, AirPodit ja lisävarusteet.

1 ajatus aiheesta "FIX HUGE SQL -taulukot: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]"

  1. @Stealth
    Tak hjælpenille. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min webshop. Laajennusten laajennukset alkavat ja alkavat tulostaa taulukon ja etsiä fylderiä ... Wooping 9.2 Gt: n tabel fik min-isäntä tilille ja opgive-hansille tarjoaa hienoa opp-tidiä. Nu trimmeri jeg med hieno kode!
    Lige et spørgsmål på falde rebet denne tabel “wpb_action_scheduler_purge” default i db'en eller skal jeg evt. nimetä uudelleen den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Tak for hjælpen og den super fine artikel

    Terveiset
    Netzie

    vastata

Jätä kommentti