POPRAVITE VELIKE tabele SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

WooCommerce postal je široko uporabljen modul spletnih trgovin. SEO, izdelek, upravljanje zalog, čista in intuitivna koda, preprost vmesnik za upravljanje in na tisoče vtičnikov, razvitih za Woo, so samo nekateri argumenti, za katere je vredno razmisliti, ko razmišljate o razvoju spletne trgovine.

Kot kateri koli CMS tudi Woo ni nobena izjema pri nenavadnostih, ki se lahko pojavijo v različnih scenarijih uporabe ali interakcije z drugimi vtičniki WordPress.
Na strežniku virov strojna oprema precej radodarno, to sem opazil storitev baze podatkov (mysqld) začne zahtevati skoraj 80-90% RAM-a. Precej resen problem, ker preprosto nisem razumel, od kod periodično prihaja do napake 110 (110: Povezava je potekla).
Ob natančnejšem pregledu procesov SQL sem ugotovil, da ima baza podatkov dve tabeli s precej velikimi količinami: wp_actionscheduler_actions si wp_actionscheduler_logs.

običajno načrtovane akcije za WooCommerce Načrtovalnik dejanj po izvedbi jih je treba samodejno izbrisati. To se ne zgodi vedno in zataknejo se v wp_actionsscheduler_actions s statusom: ni, prekinjeno, dokler ali dokončanje.

Na zgornji sliki so tabele "wp_actionsscheduler"Imajo samo nekaj več kot 15 MB. Žal mi je, ker nisem bil navdihnjen za posnetek zaslona, ​​ko so ga 1.2 GB. Kljub temu je 15 MB dovolj za tabelo, ki vsebuje načrtovane akcije WooCommerce.
Iz tega izhajajo te "nabrekle" tabele WP-Cron vnosov ne izbriše ki imajo status "ni""prekinjeno"In"dokončanje“. Običajno je treba te vnose samodejno izbrisati iz baze podatkov.
Načrtovane akcije in njihovo stanje si lahko zelo enostavno ogledate WooCommerce →  Status →  Načrtovane akcije.

Kako očistiti žlebove "ni""prekinjeno"In"dokončanje"V wp_actionscheduler_actions si wp_actionscheduler_logs

Do baze dostopamo prek phpMyAdmin, nato pa v SQL po vrsti izvajamo ukazne vrstice:

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

Ko je tabela enkrat očiščena, še ne pomeni, da je težava rešena. Kot sem že rekel, je glavni vzrok onemogočanje storitve WP-Cron iz različnih razlogov. Tako vnosov s statusom "zombi" ni več mogoče izbrisati.
Zelo pomembno je vedeti, da če imate spletno trgovino na WooCommerce in je prek vtičnika povezana s Facebook Trgovinami "Facebook za WooCommerce", Samodejno sinhronizira izdelke WooCommerce z vašim računom v trgovinah Facebook. In to stori v približno 15 minutah. Če teh vnosov SQL ne nadzorujete, lahko dobite nekaj sto tisoč vrstic. "wc_facebook_regenerate_feed" v "wp_actionscheduler_actions".

Ta interval je v redu za trgovine, ki imajo veliko število naročil, zaloge izdelkov Facebook Shops pa je treba nenehno posodabljati. Če še vedno mislite, da je mogoče te sinhronizacije med Facebookom in vašo trgovino opraviti enkrat na 24 ur, vam lahko pomaga spodnja vrstica kode.

Odprite datoteko functions / php teme WordPress / WooCommerce, na kateri deluje vaša trgovina, in dodajte:

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

Nato lahko nastavimo interval enega tedna za samodejno čiščenje:

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

Ko shranite te spremembe, ne boste imeli težav z velikanskimi tabelami za "wp_actioncheduler_actions".

Navdušen sem nad tehnologijo, rad preizkušam in pišem vaje o operacijskih sistemih macOS, Linux, Windows, o WordPressu, WooCommerceu in konfiguraciji spletnega strežnika LEMP (Linux, NGINX, MySQL in PHP). Pišem naprej StealthSettings.com od leta 2006, nekaj let kasneje pa sem začel pisati na iHowTo.Tips vadnice in novice o napravah v ekosistemu Apple: iPhone, iPad, Apple Ura, HomePod, iMac, MacBook, AirPods in dodatki.

1 misel na temo „POPRAVITE OGROMNE tabele SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]“

  1. @Stealth
    Tak za hjælpen. Du redder min dag og shop. Najprej se obrnite na naslednjo spletno trgovino. Mange vtičniki se začnejo pri izpisu dumpe deres v tabelah in datotekah… Prekrivanje 9.2 GB tabele s hitrostjo do gostitelja do odličnih opcij. Nu trimmer jeg med den fine kode!
    Ustvari in popravi napako za ponastavitev na tabelo “wpb_action_scheduler_purge” er det en default i db'en eller skal jeg evt. preimenuj den do noget i min (default hedder min db ikke 'wp_') ali imate več možnosti za delovanje?
    Tak za hjælpen og den super fin artikel

    S spoštovanjem
    Netzie

    Odgovori

Pustite komentar