OPRAVIT OBROVSKÉ tabulky SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce tipy]

WooCommerce stal se široce používaným modulem on-line obchody. SEO, produkt, správa zásob, čistý a intuitivní kód, jednoduché administrační rozhraní a tisíce pluginů vyvinutých pro Woo, to jsou jen některé z argumentů, pro které stojí za to mít šanci, když uvažujete o vývoji online obchodu.

Jako každý CMS, ani Woo není výjimkou z podivností, které se mohou vyskytnout v různých scénářích použití nebo interakce s jinými pluginy. WordPress.
Na zdrojovém serveru technické vybavení docela velkorysý, všiml jsem si toho databázová služba (mysqld) začíná vyžadovat téměř 80-90% RAM. Docela vážný problém, protože jsem prostě nechápal, odkud chyba 110 pravidelně přichází (110: Vypršel časový limit připojení).
Při bližším zkoumání procesů SQL jsem zjistil, že databáze má dvě tabulky s poměrně velkými objemy: wp_actionscheduler_actions si wp_actionscheduler_logs.

normálně plánované akce ale Plánovač akcí WooCommerce po provedení by měly být automaticky odstraněny. To se ne vždy stane a uvíznou ve wp_actionsscheduler_actions se stavem: neúspěšný, zrušeno, až do nebo kompletní.

Na obrázku výše tabulky "wp_actionsscheduler„Pouze mají něco přes 15 MB. Je mi líto, že jsem nebyl inspirován k pořízení snímku obrazovky, když měli 1.2 GB. I tak stačí 15 MB pro tabulku, která obsahuje naprogramované akce WooCommerce.
Z toho vyplývají tyto „oteklé“ tabulky WP-Cron neodstraní položky kteří mají status "neúspěšný","zrušeno"A"kompletní“. Normálně by tyto položky měly být automaticky odstraněny z databáze.
Naplánované akce a jejich stav lze snadno a snadno vidět WooCommerce →  Status →  Naplánované akce.

Jak vyčistit žlaby “neúspěšný","zrušeno"A"kompletní"V wp_actionscheduler_actions si wp_actionscheduler_logs

K databázi přistupujeme prostřednictvím phpMyAdmin, poté v SQL postupně provádíme příkazové řádky:

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

Jakmile je tato tabulka vyčištěna, neznamená to, že je problém vyřešen. Jak jsem řekl výše, hlavní příčinou je deaktivace služby WP-Cron z různých důvodů. Záznamy se stavem „zombie“ tedy již nelze mazat.
Je velmi důležité vědět, že pokud máte online obchod na WooCommerce a je propojen s Facebook Shops prostřednictvím pluginu "Facebook pro WooCommerce", Automaticky synchronizuje produkty WooCommerce s vaším účtem Facebook Shops. A dělá to asi za 15 minut. Pokud tyto položky SQL nejsou kontrolovány, můžete získat několik set tisíc řádků. “wc_facebook_regenerate_feed" v "wp_actionscheduler_actions".

Tento interval je v pořádku pro obchody, které mají velký počet objednávek, a zásoby produktů Facebook Shops je třeba neustále aktualizovat. Pokud si stále myslíte, že tyto synchronizace mezi Facebookem a vaším obchodem lze provádět každých 24 hodin, může vám pomoci řádek kódu níže.

Otevřete soubor functions.php motivu WordPress / WooCommerce provozuje váš obchod a přidá:

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

Dále můžeme nastavit interval jednoho týdne pro automatické čištění:

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

Jakmile tyto změny uložíte, nebudete mít žádné problémy s obřími tabulkami pro „wp_actionscheduler_actions“.

Příspěvek byl naposledy upraven 20. května 2021 10:07

Stealth: Vášnivý k technologii, rád testuji a píšu výukové programy o operačních systémech macOS, Linux, Windows, o WordPress, WooCommerce a konfigurace webových serverů LEMP (Linux, NGINX, MySQL a PHP). píšu dál StealthSettings.com od roku 2006 ao několik let později jsem začal psát na iHowTo.Tips výukové programy a novinky o zařízeních v ekosystému Apple: iPhone, iPad, Apple Hodinky, HomePod, iMac, MacBook, AirPods a příslušenství.

Zobrazit komentáře (1)

  • @Stealth
    Tak pro hjælpen. Du redder min dag og shop. Jděte do vašeho internetového obchodu. Spravovat pluginy jsou spuštěny na výpisu jiného výstupu a v tabulce a v tabulce... Wooping 9.2GB tabel fik min host til at opgive hans ellers fine opp-tid. Nu trimmer jeg med den fine kode!
    Karta wpb_action_scheduler_purge není na této stránce k dispozici. default i db'en eller skal jeg evt. přejmenovat 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

    pozdravy
    Síť