OPRAVTE 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.

Stejně jako jakýkoli CMS není Woo výjimkou pro zvláštnosti, 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, na kterém běží váš obchod, a přidejte:

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“.

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

O autorovi

Tajnost

Vášnivý o všem gadgetu a IT, píšu s potěšením pro tajnostsettings.com od roku 2006 a rád s vámi objevuji nové věci o počítačích a operačních systémech macOS, Linux, Windows, iOS a Android.

Zanechat komentář