POPRAVITE OGROMNE SQL tablice: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Savjet]

WooCommerce postao je široko korišteni modul online trgovine. SEO, proizvod, upravljanje zalihama, čist i intuitivan kod, jednostavno administracijsko sučelje i tisuće dodataka razvijenih za Woo, samo su neki od argumenata za koje vrijedi imati priliku kad razmišljate o razvoju internetske trgovine.

Kao i svaki CMS, Woo nije iznimka od neobičnosti koje se mogu pojaviti u različitim scenarijima upotrebe ili interakcije s drugim dodacima. WordPress.
Na poslužitelju resursa hardver prilično velikodušno, primijetio sam to usluga baze podataka (mysqld) počinje zahtijevati gotovo 80-90% RAM-a. Prilično ozbiljan problem, jer jednostavno nisam razumio odakle povremeno dolazi do pogreške 110 (110: Isteklo je vrijeme veze).
Pomnijim uvidom u SQL procese otkrio sam da baza podataka ima dvije tablice s prilično velikim volumenima: wp_actionsscheduler_actions si wp_actionsscheduler_logs.

normalno zakazane akcije od WooCommerce Planer radnji trebali bi se automatski izbrisati nakon izvršenja. To se ne događa uvijek i oni zapnu u wp_actionsscheduler_action sa statusom: Neuspjela, otkazan, u tijeku ili potpun.

Na gornjoj slici, tablice "wp_actionsscheduler"Imaju samo nešto više od 15 MB. Žao mi je što nisam bio nadahnut za snimku zaslona kad su oni to učinili 1.2 GB. Unatoč tome, 15 MB je dosta za tablicu koja sadrži programirane akcije WooCommerce.
Iz toga proizlaze ove "natečene" tablice WP-Cron ne briše unose koji imaju status "Neuspjela","otkazan"A"potpun“. Obično bi se ti unosi trebali automatski brisati iz baze podataka.
Zakazane akcije i njihovo stanje mogu se vrlo lako vidjeti u WooCommerce →  status →  Zakazane radnje.

Kako očistiti oluke "Neuspjela","otkazan"A"potpun"U wp_actionsscheduler_actions si wp_actionsscheduler_logs

Pristupimo bazi podataka putem phpMyAdmin, a zatim u SQL redom izvršavamo naredbene retke:

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

Jednom kad se ova tablica očisti, ne znači da je problem riješen. Kao što sam gore rekao, glavni uzrok je onemogućavanje usluge WP-Cron iz različitih razloga. Stoga se unosi sa statusom "zombi" više ne mogu brisati.
Vrlo je važno znati da ako imate internetsku trgovinu na WooCommerce, a povezan je s Facebook Shopovima preko dodatka "Facebook forum WooCommerce", automatski sinkronizira proizvode iz WooCommerce sa svojim Facebook Shops računom. I to svakih 15 minuta. Ovi SQL unosi ako nisu kontrolirani, možete dobiti nekoliko stotina tisuća redaka"wc_facebook_regenerate_feed"U"wp_actionsscheduler_actions".

Ovaj interval je u redu za trgovine koje imaju velik broj narudžbi, a zalihe proizvoda Facebook trgovina moraju se stalno ažurirati. Ako i dalje mislite da se ove sinkronizacije između Facebooka i vaše trgovine mogu obaviti svaka 24 sata, može vam pomoći redak donjeg koda.

Otvorite datoteku functions.php teme WordPress / WooCommerce na kojem radi vaša trgovina i dodajte:

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

Dalje možemo postaviti interval od tjedan dana za automatsko čišćenje:

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

Jednom kada spremite ove promjene nećete imati problema s gigantskim tablicama za "wp_actioncheduler_actions".

Strastveni zaljubljenik u tehnologiju, s veseljem pišem na StealthSettings.com od 2006. godine. Imam bogato iskustvo s operativnim sustavima: macOS, Windows i Linux, kao i s programskim jezicima i platformama za bloganje (WordPress) i za internetske trgovine (WooCommerce, Magento, PrestaShop).

kako » znatiželja » POPRAVITE OGROMNE SQL tablice: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Savjet]

1 misao o “POPRAVITI OGROMNE SQL tablice: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Savjeti]"

  1. @Stealth
    Tak za hjælpen. Du redder min dag og shop. Ako ga pogledate odmah nakon nedostupnosti u roku od min webshopa. Mange dodaci počinju na izlazu iz dampera i prikazuju se na tabelama i datotekama ... Preko 9.2 GB tabela, minimalno hostirano, do finog opsega. Nu trimer jeg med den fine kode!
    Označite i ponovite na pogrešnom rebetu na tabelu "wpb_action_scheduler_purge" na ovom mjestu default i db'en eller skal jeg evt. preimenovati den do noget i min (default hedder min db ikke 'wp_') je li potreban više od jedne funkcije?
    Tak za hjælpen og den super fin artikel

    Pozdrav
    Mreža

    odgovor
Ostavite komentar