NUSTATYTI DIDŽIAS SQL lenteles: wp_actionscheduler_actions & wp_actionscheduler_logs [„WooCommerce“ patarimai]

WooCommerce jis tapo plačiai naudojamu moduliu internetinių parduotuvių. SEO, produktas, atsargų valdymas, švarus ir intuityvus kodas, paprasta administravimo sąsaja ir tūkstančiai „Woo“ sukurtų papildinių yra tik keletas argumentų, dėl kurių verta tikėtis, kai galvojate apie internetinės parduotuvės kūrimą.

Kaip ir bet kuri CMS, „Woo“ nėra išimtis iš keistenybių, kurios gali pasitaikyti įvairiais naudojimo ar sąveikos su kitais „WordPress“ įskiepiais atvejais.
Išteklių serveryje techninė įranga gana dosnus, tai pastebėjau duomenų bazės paslauga (mysqld) pradeda reikėti beveik 80–90% RAM. Gana rimta problema, nes aš tiesiog nesupratau, iš kur periodiškai atsiranda 110 klaida (110: Baigėsi ryšio laikas).
Atidžiau išnagrinėjęs SQL procesus, radau, kad duomenų bazėje yra dvi gana didelių apimčių lentelės: wp_actionscheduler_actions si wp_actionscheduler_logs.

paprastai suplanuoti veiksmai„WooCommerce“ veiksmų planuoklis jas įvykdžius, jos turėtų būti ištrintos automatiškai. Tai ne visada atsitinka, ir jie įstringa „wp_actionsscheduler_actions“ su būsena: nepavyko, atšauktas, kol arba užbaigti.

Aukščiau esančiame paveikslėlyje lentelės "wp_actionsscheduler„Jie tik turi šiek tiek daugiau nei 15 MB. Atsiprašau, bet man nebuvo įkvėpta fotografuoti, kai jie tai padarė 1.2 LT. Nepaisant to, lentelei, kurioje yra užprogramuoti „WooCommerce“ veiksmai, pakanka 15 MB.
Šios „išbrinkusios“ lentelės atsiranda dėl to WP-Cron neištrina įrašų kurie turi statusą "nepavyko","atšauktas"Ir"užbaigti“. Paprastai šie įrašai turėtų būti automatiškai ištrinami iš duomenų bazės.
Suplanuotus veiksmus ir jų būseną galima pamatyti labai lengvai WooCommerce →  statusas →  Suplanuoti veiksmai.

Kaip išvalyti latakus “nepavyko","atšauktas"Ir"užbaigti"Be wp_actionscheduler_actions si wp_actionscheduler_logs

Mes prieiname prie duomenų bazės per „phpMyAdmin“, tada SQL eilėje vykdome komandines eilutes:

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

Išvalius šią lentelę, dar nereiškia, kad problema išspręsta. Kaip sakiau aukščiau, pagrindinė priežastis yra WP-Cron paslaugos išjungimas dėl įvairių priežasčių. Taigi įrašų su „zombių“ būsena nebegalima ištrinti.
Labai svarbu žinoti, kad jei turite internetinę parduotuvę „WooCommerce“ ir ji yra prijungta prie „Facebook“ parduotuvių per papildinį "„WooCommerce“ „Facebook“", Tai automatiškai sinchronizuoja" WooCommerce "produktus su jūsų" Facebook "parduotuvių paskyra. Ir jis tai padaro maždaug per 15 minučių. Jei šie SQL įrašai nėra valdomi, galite gauti kelis šimtus tūkstančių eilučių. "wc_facebook_regenerate_feed" į "wp_actionscheduler_actions".

Šis intervalas tinka parduotuvėms, kuriose yra daug užsakymų, o „Facebook Shops“ produktų atsargas reikia nuolat atnaujinti. Jei vis tiek manote, kad šiuos „Facebook“ ir jūsų parduotuvės sinchronizavimus galima atlikti kartą per 24 valandas, gali padėti žemiau esanti kodo eilutė.

Atidarykite „WordPress“ / „WooCommerce“ temos, kurioje veikia jūsų parduotuvė, funkcijas / php failą ir pridėkite:

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

Žemiau galime nustatyti vienos savaitės intervalą automatiniam valymui:

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

Išsaugoję šiuos pakeitimus neturėsite problemų dėl milžiniškų „wp_actionscheduler_actions“ lentelių.

Aistringai žiūri į technologijas, man patinka išbandyti ir rašyti pamokas apie operacines sistemas macOS, „Linux“, Windows, apie „WordPress“, „WooCommerce“ ir LEMP tinklo serverio konfigūraciją („Linux“, „NGINX“, „MySQL“ ir PHP). Rašau toliau StealthSettings.com nuo 2006 m., o po kelerių metų pradėjau rašyti „iHowTo.Tips“ mokymo programose ir naujienose apie įrenginius ekosistemoje. Apple: iPhone, „iPad“, Apple Žiūrėti, „HomePod“, iMac, MacBook, „AirPod“ ir priedai.

1 mintis apie „FIX HUGE SQL lenteles: wp_actionscheduler_actions & wp_actionscheduler_logs [„ WooCommerce “patarimai]

  1. @Stealth
    Tak už hjælpen. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min webshop. Įvairių įskiepių, pradedančių ir išvestų išvesties, taip pat ir fylder… Wooping 9.2GB tabel fik min host host to opgive hans ellers fine opp-tid. Nu trimmer jeg med fine code!
    Lige et spørgsmål på falde rebet denne tabel „wpb_action_scheduler_purge“ er det en default i db'en eller skal jeg evt. pervardyti den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Pateikite užklausą ir supermodelinį straipsnį

    Hilsenas
    Netzie

    atsakymas

Palikite komentarą