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ų.

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

Apie autorių

slaptumas

Aistringai vertinu viską, kas yra programėlė ir IT, su malonumu rašau apie vagystessettings.com nuo 2006 m. ir man patinka su jumis atrasti naujų dalykų apie kompiuterius ir operacines sistemas macOS, „Linux“, Windows, „iOS“ ir „Android“.

Palikite komentarą