PAtaisykite didžiules 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 TVS, „Woo“ nėra išimtis dėl keistenybių, kurios gali atsirasti įvairiuose naudojimo ar sąveikos su kitais priedais scenarijais. WordPress.
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 veiksmaiWooCommerce 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, 15 MB yra gana daug lentelei, kurioje yra užprogramuoti veiksmai WooCommerce.
Š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 tai žinoti, jei turite internetinę parduotuvę WooCommerce, ir jis yra prijungtas prie „Facebook“ parduotuvių per papildinį „Facebook forumas WooCommerce“, jis automatiškai sinchronizuoja produktus iš WooCommerce su savo Facebook parduotuvių paskyra. Ir jis tai daro kas 15 minučių. Jei šie SQL įrašai nevaldomi, 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 temos failą functions.php WordPress / WooCommerce kurioje veikia jūsų parduotuvė, 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ų.

Technologijų entuziastas, nuo 2006 metų su malonumu rašau „StealthSettings.com“. Turiu išsamią patirtį su operacinėmis sistemomis: macOS, „Windows“ ir „Linux“, taip pat programavimo kalbomis ir blogo platformomis („WordPress“) bei internetinės parduotuvės platformomis („WooCommerce“, „Magento“, „PrestaShop“).

kaip » smalsumas » PAtaisykite didžiules SQL lenteles: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Patarimai]

1 mintis apie „PAtaisyti milžiniškas 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
    Tinklas

    atsakymas
Palikite komentarą