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.

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

Kirjailijasta

Stealth

Intohimoisesti kaikesta laitteesta ja IT: stä kirjoitan mielihyvin varkainsettings.com vuodesta 2006 ja haluan löytää kanssasi uusia asioita tietokoneista ja käyttöjärjestelmistä macKäyttöjärjestelmä, Linux, Windows, iOS ja Android.

Jätä kommentti