OPRAVTE OBROVSKÉ SQL tabuľky: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tipy]

WooCommerce stal sa široko používaným modulom on-line obchody. SEO, produkt, správa zásob, čistý a intuitívny kód, jednoduché administračné rozhranie a tisíce doplnkov vyvinutých pre Woo, to sú len niektoré z argumentov, pre ktoré stojí za to šancu, keď uvažujete o vývoji online obchodu.

Ako každý CMS, ani Woo nie je výnimkou zo zvláštností, ktoré sa môžu vyskytnúť pri rôznych scenároch použitia alebo interakcie s inými doplnkami. WordPress.
Na zdrojovom serveri technické vybavenie dosť veľkorysý, všimol som si to databázová služba (mysqld) začína vyžadovať takmer 80 - 90% pamäte RAM. Dosť vážny problém, pretože som práve nechápal, odkiaľ periodicky pochádza chyba 110 (110: Časový limit pripojenia vypršal).
Pri bližšom skúmaní procesov SQL som zistil, že databáza má dve tabuľky s pomerne veľkými objemami: wp_actionscheduler_actions si wp_actionscheduler_logs.

normálne plánované akcie z WooCommerce Plánovač akcií po vykonaní by sa mali automaticky vymazať. To sa nestane vždy a zaseknú sa vo wp_actionsscheduler_actions so stavom: neúspešný, zrušený, až do alebo kompletný.

Na obrázku vyššie tabuľky "wp_actionsscheduler„Iba majú niečo cez 15 MB. Je mi ľúto, že som nebol inšpirovaný urobiť snímku obrazovky, keď mali 1.2 GB. Aj tak je 15 MB dosť veľa na tabuľku, ktorá obsahuje naprogramované akcie WooCommerce.
Z toho vyplývajú tieto „opuchnuté“ tabuľky WP-Cron nevymaže položky ktorí majú status “neúspešný","zrušený"A"kompletný„. Spravidla by sa mali tieto záznamy z databázy automaticky vymazať.
Naplánované akcie a ich stav je možné vidieť veľmi ľahko a v WooCommerce →  postavenie →  Plánované činnosti.

Ako vyčistiť odkvapy “neúspešný","zrušený"A"kompletný"v wp_actionscheduler_actions si wp_actionscheduler_logs

K databáze sa dostávame cez phpMyAdmin, potom na SQL spúšťame postupne príkazové riadky:

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

Po vyčistení tejto tabuľky to neznamená, že sa problém vyriešil. Ako som už uviedol vyššie, hlavnou príčinou je deaktivácia služby WP-Cron z rôznych dôvodov. Záznamy so stavom „zombie“ teda už nemožno mazať.
Je veľmi dôležité vedieť, že ak máte internetový obchod na WooCommercea je prepojený s obchodmi na Facebooku prostredníctvom doplnku "Facebook fórum WooCommerce“, automaticky synchronizuje produkty z WooCommerce s vaším účtom v Obchodoch na Facebooku. A robí to každých 15 minút. Ak tieto položky SQL nie sú kontrolované, môžete získať niekoľko stoviek tisíc riadkov"wc_facebook_regenerate_feed" do "wp_actionscheduler_actions".

Tento interval je v poriadku pre obchody, ktoré majú veľký počet objednávok a zásoby produktov Facebook Shops je potrebné neustále aktualizovať. Ak si stále myslíte, že tieto synchronizácie medzi Facebookom a vaším obchodom je možné vykonať každých 24 hodín, môže vám pomôcť riadok kódu uvedený nižšie.

Otvorte súbor functions.php témy WordPress / WooCommerce na ktorom funguje váš obchod a pridajte:

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

Ďalej môžeme nastaviť interval jedného týždňa na automatické čistenie:

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

Po uložení týchto zmien nebudete mať žiadne problémy s obrovskými tabuľkami pre „wp_actionscheduler_actions“.

Zanietený technológiou, s radosťou píšem na StealthSettings.com od roku 2006. Mám bohaté skúsenosti s operačnými systémami: macOS, Windows a Linux, ako aj s programovacími jazykmi a platformami pre blogovanie (WordPress) a pre online obchody (WooCommerce, Magento, PrestaShop).

Ako » zvedavosť » OPRAVTE OBROVSKÉ SQL tabuľky: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tipy]

1 myšlienka na tému „OPRAVTE OBROVSKÉ SQL tabuľky: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tipy]"

  1. @Stealth
    Vezmite si hjælpen. 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.2 GB tabel fik min hostiteľa do na opgive hans ellers fine opp-tid. Nu trimmer jeg med den fine kode!
    Lige et spørgsmål på falde rebet denne table “wpb_action_scheduler_purge” default i db'en eller skal jeg evt. premenovať den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Take for hjælpen og den super fine artikel

    S pozdravom
    sieť

    odpoveď
Pridať komentár