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
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íť