FIX OBROVSKÉ tabuľky SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [tipy WooCommerce]

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.

Rovnako ako akýkoľvek CMS, ani Woo nie je výnimkou z podivností, ktoré sa môžu vyskytnúť v 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 Plánovač akcií WooCommerce 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 napriek tomu stačí 15 MB pre tabuľku, ktorá obsahuje naplánované 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 online obchod na WooCommerce a je prepojený s Facebook Shops prostredníctvom pluginu „Facebook pre WooCommerce", Automaticky synchronizuje produkty WooCommerce s vašim účtom Facebook Shops. A robí to asi za 15 minút. Ak tieto položky SQL nie sú kontrolované, môžete získať niekoľko stotisí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 ktorej je spustený 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“.

Vášnivý k technológiám, rád testujem a píšem návody o operačných systémoch macOS, Linux, Windows, o konfigurácii webového servera WordPress, WooCommerce a LEMP (Linux, NGINX, MySQL a PHP). Píšem ďalej StealthSettings.com od roku 2006 a o pár rokov neskôr som začal písať na iHowTo.Tips návody a novinky o zariadeniach v ekosystéme Apple: iPhone, iPad, Apple Hodinky, HomePod, iMac, MacBook, AirPods a príslušenstvo.

1 myšlienka k „FIX HUGE SQL tables: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]“

  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
    Netzie

    odpoveď

Pridať komentár