Napraw ogromne tabele SQL: WP_actionscheduler_actions & wp_actionscheduler_logs [WOOCOMMERCE TIPS]

WooCommerce stał się bardzo używanym modułem coraz więcej Magazyn online. Seo, Zarządzanie produktami, zapasami, czysty i intuicyjny kod, prosty interfejs administracyjny i tysiące pługów opracowanych dla WOO, to tylko niektóre argumenty, za które zasługuje na szansę, gdy myślisz o opracowaniu sklepu internetowego.

Jak każdy CMS, żaden woo nie jest wyjątkiem od szans, które mogą wystąpić w różnych scenariuszach użytkowania lub interakcji z innymi wtyczkami WordPress.
Na serwerze z zasobami sprzęt komputerowy Dość hojny, zauważyłem to Usługa bazy danych (Mysqld) zaczyna żądać prawie 80– 90% pamięci RAM. Całkiem poważny problem, ponieważ po prostu nie rozumiałem, skąd występuje błąd 110110: Czasowe połączenie).
Przy dokładniejszym sprawdzeniu procesów SQL odkryłem, że baza danych ma dwie całkiem znaczne tabele woluminów: WP_actionscheduler_actions I WP_actionscheduler_logs.

W normalnym modach zaplanowane działania Ale WooCommerce Action Scheduler Należy go usunąć automatycznie po ich wykonaniu. Nie zawsze tak się dzieje i pozostają blokowane w WP_Actionschedier_actions ze statusem: przegranyW odwołanyW aż do Lub kompletny.

Na obrazie nad tabelami “WP_actionsscheduler” Mają tylko Trochę ponad 15 MB. Przepraszam, że nie byłem zainspirowany do zrobienia zrzutu ekranu, kiedy to zrobili1,2 GB. Mimo to 15 MB wystarcza do tabeli zawierającej zaprogramowane działania WooCommerce.
Te tabele “NADMUCHANY” powoduje z tego powodu WP-cron nie usuwa wejść CARE AU Status “przegrany“W “odwołany” I “kompletny“. Zwykle te wejścia muszą być automatycznie usuwane z bazy danych.
Zaplanowane działania i ich stan widzimy to bardzo łatwo i w środku WooCommerceStatusZaplanowane działania.

Jak czyścimy insatters “przegrany“W “odwołany” I “kompletny” ZWP_actionscheduler_actions I WP_actionscheduler_logs

Uzyskujemy dostęp do bazy danych przez phpMyAdmin, a następnie w SQL wykonujemy 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 oczyszczeniu tego stołu nie oznacza to, że problem jest rozwiązany. Jak powiedziałem powyżej, główną przyczyną jest dezaktywacja z różnych powodów usługi WP-Chron. Zatem wpisy ze statusami “bałwan” Nie można już być wymazywane.
Bardzo ważne jest, aby wiedzieć, że jeśli masz sklep internetowy na WoCommerce i jest on powiązany z sklepami na Facebooku za pośrednictwem wtyczki “Facebook dla WooCommerce“, automatycznie synchronizuje produkty WooCommerce z kontem sklepów na Facebooku. I robi to około 15 minut. Te wejścia SQL, jeśli nie są kontrolowane, możesz uzyskać kilkaset tysięcy linii “WC_FaceBook_regeneate_Feed” W “WP_actionscheduler_actions“.

Ten przedział jest w porządku w przypadku sklepów, które mają dużą liczbę zamówień i konieczne jest, aby zapasy sklepów na Facebooku były ciągle aktualizowane. Jeśli nadal weźmiesz pod uwagę tę synchronizację z Facebooka, a Twój sklep może odbywać się co 24 godziny, poniższa linia kodu może Ci pomóc.

Otwórz plik functions.php z motywu WordPress / WooCommerce, którego 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ć odstęp tygodniowy do automatycznego czyszczenia:

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

Pasjonując się technologią, z przyjemnością piszę na StealthSetts.com Począwszy od 2006 roku. Mam bogate doświadczenie w systemach operacyjnych: macOS, Windows i Linux, ale także w językach programowania i platformach blogowych (WordPress) oraz w sklepach internetowych (WooCommerce, Magento, Presashop).

Dom Twoje źródło samouczków, przydatne wskazówki i wiadomości. Napraw ogromne tabele SQL: WP_actionscheduler_actions & wp_actionscheduler_logs [WOOCOMMERCE TIPS]

1 Myśl o „Napraw ogromne tabele SQL: WP_actionscheduler_actions & wp_actionscheduler_logs [WOOCOMMERCE TIPS]”

  1. @Podstęp
    Dzięki za pomoc. Oszczędzasz mi dzień i robisz zakupy. Po raz pierwszy odkryłem to po awarii mojego sklepu internetowego. Wiele wtyczek zaczęło zrzucić swoje wyjście w tej tabeli i wypełnia… Tabela 9,2 GB spowodowała, że ​​mój gospodarz zrezygnował ze swojego skądinąd dobrego czasu PPP. Teraz przycinam delikatny kod!
    Tylko pytanie o upadek liny w tym stole “WPB_ACTION_SCHEDULER_PURGE” Czy jest to domyślne w DB, czy powinienem. Zmień nazwę na coś w moim (domyślnie to mój db, a nie „WP_’ ) Czy jest to funkcja?
    Dzięki za pomoc i super fajny artykuł

    Powitanie
    Netzie

    Odpowiedź
Zostaw komentarz