NAPRAW OGROMNE tabele SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Porady]

WooCommerce stał się szeroko stosowanym modułem sklepy internetowe. SEO, zarządzanie produktami i zapasami, przejrzysty i intuicyjny kod, prosty interfejs administracyjny i tysiące wtyczek opracowanych dla Woo, to tylko niektóre z powodów, dla których warto dać mu szansę, gdy myślisz o rozwoju sklepu internetowego.

Jak każdy CMS, Woo nie jest wyjątkiem od osobliwości, które mogą wystąpić w różnych scenariuszach użytkowania lub interakcji z innymi wtyczkami. WordPress.
Na serwerze zasobów sprzęt komputerowy dość hojny, zauważyłem to usługa bazy danych (mysqld) zaczyna wymagać prawie 80-90% pamięci RAM. Dość poważny problem, ponieważ po prostu nie rozumiałem, skąd pojawia się błąd 110 okresowo (110: Osiągnięto limit czasu połączenia).
Po bliższej analizie procesów SQL odkryłem, że baza danych ma dwie tabele z dość dużymi objętościami: wp_actionscheduler_actions si wp_actionscheduler_logs.

normalnie zaplanowane działania z WooCommerce Harmonogram działań powinny być automatycznie usuwane po wykonaniu. To nie zawsze się zdarza i utkną w wp_actionsscheduler_actions ze statusem: powiodło, anulowany, w oczekiwaniu lub kompletny.

Na powyższej ilustracji tabele „wp_actionsharmonogram"Oni tylko mają nieco ponad 15 MB. Przepraszam, że nie zainspirował mnie do zrobienia zrzutu ekranu, kiedy to zrobili 1.2 GB. Mimo to 15 MB to całkiem sporo jak na tabelę zawierającą zaprogramowane działania programu WooCommerce.
Wynikają z tego te „spuchnięte” tabele WP-Cron nie usuwa wpisów którzy mają status "powiodło","anulowany"A"kompletny„. Zwykle wpisy te powinny być automatycznie usuwane z bazy danych.
Zaplanowane działania i ich stan można bardzo łatwo zobaczyć i w WooCommerce →  Rynek →  Zaplanowane działania.

Jak czyścić rynny ”powiodło","anulowany"A"kompletny"W wp_actionscheduler_actions si wp_actionscheduler_logs

Dostęp do bazy danych uzyskujemy przez phpMyAdmin, następnie w SQL wykonujemy kolejno wiersze poleceń:

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 wyczyszczeniu tej tabeli nie oznacza to, że problem został rozwiązany. Jak powiedziałem powyżej, główną przyczyną jest wyłączenie usługi WP-Cron z różnych powodów. W związku z tym wpisy o statusie „zombie” nie mogą już zostać usunięte.
Bardzo ważne jest, aby o tym wiedzieć, jeśli masz włączony sklep internetowy WooCommercei jest połączony ze sklepami na Facebooku za pomocą wtyczki "forum na Facebooku WooCommerce", automatycznie synchronizuje produkty z WooCommerce z kontem Sklepów na Facebooku. I robi to co 15 minut. Te wpisy SQL, jeśli nie są kontrolowane, można uzyskać kilkaset tysięcy linii”wc_facebook_regenerate_feed" w "wp_actionscheduler_actions".

Ten interwał jest odpowiedni dla sklepów, które mają dużą liczbę zamówień, a zapasy produktów w Sklepach Facebooka muszą być stale aktualizowane. Jeśli nadal uważasz, że te synchronizacje między Facebookiem a Twoim sklepem można wykonywać co 24 godziny, pomocna może być poniższa linia kodu.

Otwórz plik functions.php motywu WordPress / WooCommerce na którym działa Twój sklep i dodaj:

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

Następnie możemy ustawić tygodniowy odstęp między automatycznym czyszczeniem:

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

Po zapisaniu tych zmian nie będziesz mieć problemów z gigantycznymi tabelami dla „wp_actionscheduler_actions”.

Pasjonat technologii, z przyjemnością piszę dalej StealthSettings.com od 2006 roku. Mam duże doświadczenie w systemach operacyjnych: macOS, Windows şi Linux, ale także w językach programowania i platformach blogowych (WordPress) oraz dla sklepów internetowych (WooCommerce, Magento, PrestaShop).

jak » ciekawość » NAPRAW OGROMNE tabele SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Porady]

1 myśl na temat „NAPRAW OGROMNE tabele SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Porady]"

  1. @Stealth
    Weź za hjælpen. Du redder min dag og shop. Jeg opdagede po raz pierwszy i późniejszy w min sklep internetowy. Mange wtyczek zawiera wszystkie dane wyjściowe w tabeli i folderach… Wooping 9.2 GB tabeli min hosta do uprzejmych Hans ellers w porządku opp-tid. Nu trymer jeg med den fine kode!
    Lige et spørgsmål på falde rebet denne tabela „wpb_action_scheduler_purge” default i db'en eller skal jeg evt. zmień nazwę den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Tak za hjælpen og den super fine artikel

    pozdrowienia
    Sieć

    Odpowiedz
Zostaw komentarz