Prometnica sve više i više je postao vrlo korišten modul magazin online. SEO, upravljanje proizvodima i zalihama, čist i intuitivan kod, jednostavno administrativno sučelje i tisuće dodataka razvijenih za Woo samo su neki od razloga zašto zaslužuje priliku kada razmišljate o razvoju internetske trgovine.
Kao i svaki CMS, Woo nije izuzet od neobičnosti koje se mogu pojaviti u različitim scenarijima korištenja ili interakcije s drugim WordPress dodacima.
Na poslužitelju s resursima hardver prilično velikodušno, primijetio sam to usluga baze podataka (mysqld) počinje tražiti gotovo 80– 90% RAM-a. Prilično ozbiljan problem, jer jednostavno nisam razumio odakle povremeno dolazi pogreška 110 (110: Veza je istekla).
Nakon detaljnijeg pregleda SQL procesa, otkrio sam da jedna baza podataka ima dvije tablice s prilično velikim volumenom: wp_actionscheduler_actions si wp_actionscheduler_logs.
U modu normalno zakazane akcije ali WooCommerce planer radnji trebaju se automatski izbrisati nakon što se izvrše. To se ne događa uvijek i oni ostaju blokirani u wp_actionsscheduler_actions sa statusom: nije uspio,, otkazan,, na čekanju sau potpuna.
Na gornjoj slici, tablice “wp_actionsscheduler” imaju samo nešto više od 15 MB. Žao mi je što nisam bio inspiriran napraviti snimku zaslona kad su oni to učinili1,2 GB. Unatoč tome, 15 MB je dosta za tablicu koja sadrži zakazane radnje WooCommercea.
Ove tablice “NAPUHAN” proizlazi iz ca WP-Cron ne briše unose care au status “nije uspio“,, “otkazan” si “potpuna“. Obično se ti unosi moraju automatski izbrisati iz baze podataka.
Programirane radnje i njihov status mogu se vrlo lako vidjeti Prometnica →Status →Zakazane radnje.
Kako čistimo odvode? “nije uspio“,, “otkazan” si “potpuna” IZwp_actionscheduler_actions si wp_actionscheduler_logs
Bazi podataka pristupamo kroz phpMyAdmin, a zatim u SQL-u 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 kada se ova tablica očisti, to ne znači da je problem riješen. Kao što sam već rekao, glavni uzrok je deaktivacija usluge WP-Cron iz raznih razloga. Dakle, unosi sa statusima “zombi” više se ne mogu brisati.
Vrlo je važno znati da ako imate online trgovinu na WooCommerceu, a povezana je s Facebook Shopovima putem dodatka “Facebook za WooCommerce“, automatski sinkronizira WooCommerce proizvode s vašim Facebook Shops računom. I to svakih 15 minuta. Ako se ti SQL unosi ne kontroliraju, možete dobiti nekoliko stotina tisuća redaka “wc_facebook_regenerate_feed” u “wp_actionscheduler_actions“.
Ovaj interval je ok za trgovine koje imaju veliki broj narudžbi i potrebno je da se zaliha proizvoda u Facebook Shopovima stalno ažurira. Ako još uvijek mislite da se te sinkronizacije između Facebooka i vaše trgovine mogu napraviti jednom svaka 24 sata, redak koda ispod može vam pomoći.
Otvorite datoteku functions.php WordPress / WooCommerce teme na kojoj radi vaša trgovina i dodajte:
add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );
Zatim 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;
}
Nakon što su ove promjene spremljene, više nećete imati problema s ogromnim tablicama za “wp_actionscheduler_actions”.



@Potajno
Hvala na pomoci. Spasio si mi dan i kupovao. To sam otkrio tek nakon pada mog webshopa. Mnogi dodaci počeli su ispisivati svoje rezultate u toj tablici i ona se popunjava… Zbog stola od 9,2 GB moj se domaćin odrekao svog inače dobrog vremena za opp. Sada šišam s lijepim kodom!
Samo pitanje o ovom stolu “wpb_action_scheduler_purge” je li to zadano u db ili ga moram preimenovati u nešto u svom (prema zadanim postavkama moj db se ne zove 'wp_’ ) ili je možda funkcija?
Hvala na pomoći i super lijepom članku
Pozdrav
Netzie