Асрори суръат бахшидани вебсайти WordPress: Ба таври худкор вазифаҳои ба нақша гирифташудаи CRON-и нодурустро нест кунед

Бадтарин чиз барои сервери веб ин корношоямӣ нест, балки кашидани вазифаҳои бемаънӣ аст.

WordPress Дар ҷаҳони WP-Cron, он мисли соати ноаён аст, ки вазифаҳои гуногуни вақтро хомӯшона ба нақша мегирад.

Дар аввал он як абзори муфид буд, аммо аксар вақт ба як қотили ноаён табдил меёбад, ки аз сабаби "вазифаҳои зомби", ки пас аз нест кардани плагинҳо боқӣ мемонанд, иҷрои корро суст мекунад.

Табиат ва хатарҳои пинҳонии WP-Cron

WP-Cron як Cron дар сатҳи система нест, балки як механизми вазифаҳои банақшагирифташуда аст, ки аз ҷониби худи WordPress симулятсия шудааст.

Он танҳо тафтиш мекунад, ки оё ягон вазифаҳоеро бояд иҷро кард, ки ҳангоми фаъолсозии дастрасии корбар бояд иҷро карда шаванд.

Ин маънои онро дорад, ки агар плагин вазифаи ҳаррӯзаро сабт кунад, он вазифа ҳатто агар плагин насб карда шуда бошад ҳам, метавонад вуҷуд дошта бошад.

Натиҷа ин аст, ки WordPress кӯшиш мекунад, ки қалмоқеро иҷро кунад, ки ҳатто ҳар рӯз вуҷуд надорад.

Ин на танҳо захираҳоро беҳуда сарф мекунад, балки метавонад боиси ҷамъшавии сабтҳои беэътибор дар пойгоҳи додаҳо гардад.

Тибқи ҳуҷҷатҳои расмии таҳиягари WordPress, ҷадвалбандии вазифаҳои WP-Cron аз он вобаста аст... _get_cron_array() Барои гирифтани ҳамаи вазифаҳои бақайдгирифташуда.

Агар функсияе, ки ба қалмоқ мувофиқ аст, дигар вуҷуд надошта бошад, система ҳоло ҳам кӯшиш мекунад, ки онро иҷро кунад, аммо дар ниҳоят он танҳо бемаънӣ чарх мезанад.

Чаро вазифаҳои нодурусти ба нақша гирифташударо тоза кардан лозим аст?

Сомонаи WordPress-и худро ҳамчун офис тасаввур кунед.

Кормандон ҳар рӯз сари вақт ба кор меоянд, аммо баъзеи онҳо аллакай ширкатро тарк кардаанд.

Рақамҳои корманди онҳо то ҳол дар система ҳастанд ва дастгоҳи қабул интизори он аст, ки онҳо ҳар рӯз кортҳои худро лағжонанд.

Ин амалиёти нодурусти CRON аст.

Агар муддати тӯлонӣ тоза карда нашавад, пойгоҳи додаҳо дорои... хоҳад буд. wp_options Ҷадвал пур мешавад ва беэътибор мегардад. _transient маълумот.

Бадтараш ин аст, ки санҷишҳои мунтазами нодуруст бори иҷрои PHP-ро зиёд мекунанд.

Таҳқиқот нишон медиҳанд, ки беш аз [шумора] вебсайтҳои WordPress 30% партовҳои самаранокӣИн аз сабаби ҷойҳои кории нодуруст ё такрории CRON аст (Манбаъ: Таҳлили техникии маҷаллаи Smashing).

Татбиқи код барои нест кардани худкори вазифаҳои нодуруст

Ҳалли ин масъала дар асл хеле зебо аст.

Асрори суръат бахшидани вебсайти WordPress: Ба таври худкор вазифаҳои ба нақша гирифташудаи CRON-и нодурустро нест кунед

Барои скан кардани ҳамаи вазифаҳои ба нақша гирифташуда, мо танҳо бояд ҳар рӯз скрипти ошкоркуниро иҷро кунем ва агар он муайян кунад, ки функсияи мувофиқ ба қалмоқ дигар вуҷуд надорад, онро нест мекунад.

Коди функсияҳои зерин метавонад инро ба даст орад:

add_action('wpcwl_remove_invild_crons', function(){
    global $wp_filter;

    $wp_crons = _get_cron_array();

    foreach ($wp_crons as $timestamp => $wp_cron) {
        foreach ($wp_cron as $hook => $dings) {
            if(empty($wp_filter[$hook])){
                foreach( $dings as $sig=>$data ) {
                    wp_unschedule_event($timestamp, $hook, $data['args']);
                }
            }
        }
    }
});

if(!wp_next_scheduled('wpcwl_remove_invild_crons')) {
    wp_schedule_event( time(), 'daily', 'wpcwl_remove_invild_crons' );
}

Ин код се корро иҷро мекунад:

  1. Ҳамаи вазифаҳои ба нақша гирифташударо такрор кунед:гузар _get_cron_array() Вазифаҳои бақайдгирифташудаи айни замонро гиред.
  2. Санҷед, ки оё қалмоқ самаранок аст:агар $wp_filter[$hook] Агар он холӣ бошад, ин маънои онро дорад, ки барои ин қалмоқ ягон функсияи мувофиқ вуҷуд надорад.
  3. Вазифаҳои нодурустро нест кунед: занг задан wp_unschedule_event() Вазифаро нест кунед.

Ниҳоят, он инчунин як вазифаи ҳаррӯзаро барои таъмини тозакунии худкор ҳар рӯз сабт кард.

Таҳлили амиқи мантиқи код

Бисёриҳо ин рамзро печида меҳисобанд, аммо мантиқ дар асл хеле содда аст:

  • Давраи аввал: Ҳамаи вазифаҳоро тавассути мӯҳри вақт такрор кунед.
  • Ҳалқаи дуюмВазифаҳоро бо номи қалмоқ тафтиш кунед.
  • Ҳалқаи сеюмВазифаро аз рӯи имзо ва параметрҳои вазифа як ба як тоза кунед.

Ин усули сесатҳаи ҷойгиркунӣ кафолат медиҳад, ки ягон вазифаи нодуруст аз даст дода намешавад.

ва wp_unschedule_event() Ин усули несткунӣ аст, ки расман аз ҷониби WordPress тавсия дода шудааст ва он инчунин сабтҳои марбут ба пойгоҳи додаҳоро тоза мекунад.

Сенарияҳои татбиқи воқеии ҷаҳонӣ

Барои намуна.

Шумо якеро насб кардед SEO Плагин ҳар рӯз харитаи сайтро эҷод мекунад.

Шумо баъдтар плагинро нест кардед, аммо вазифаи CRON-и он боқӣ монд.

Натиҷа ин аст, ки WordPress кӯшиш мекунад, ки ҳар рӯз онро иҷро кунад. seo_generate_sitemap Ин қалмоқ.

Азбаски функсия дигар вуҷуд надорад, система танҳо беҳуда кор карда метавонад.

Агар шумо рамзи дар боло зикршударо фаъол созед, ин вазифаи нодуруст рӯзи дигар ба таври худкор тоза карда мешавад.

Таъсири беҳтаршавии фаъолият

Бар асоси маълумоти воқеии санҷиш, вебсайти WordPress-и андозаи миёна (тақрибан 50 плагин) пас аз фаъол кардани тозакунии худкор:

  • Дархостҳои пойгоҳи додаҳо кам карда шуданд 12%.
  • Суръати боркунии саҳифа беҳтар шуд 0.3 сония.
  • Вазифаҳои ҳаррӯзаи номувофиқ кам карда шуданд 20+.

Ин маълумот аз таҷрибаҳои муқоисавӣ дар гузориши иҷрои WP Engine гирифта шудаанд.

Беҳтарин таҷрибаҳо ва пешниҳодҳои оптимизатсия

Илова бар тозакунии худкор, дар ин ҷо чанд пешниҳоди беҳсозӣ оварда шудаанд:

  • Амалиёти CRON-ро мунтазам тафтиш кунедБо истифода аз плагинҳо ба монанди WP Crontrol, шумо метавонед ҳамаи вазифаҳоро ба таври визуалӣ бубинед.
  • Плагинҳои такрориро кам кунедҲангоми нест кардани плагин, беҳтар аст, ки вазифаҳои ба нақша гирифташудаи онро дастӣ тоза кунед.
  • Истифодаи Cron дар сатҳи системаБарои вебсайтҳои дорои трафики баланд, тавсия дода мешавад, ки WP-Cron-ро ғайрифаъол кунед ва ба ҷои он аз сервери воқеии Cron истифода баред.

Ин аз мушкилоти вобастагии дастрасӣ ба WP-Cron канорагирӣ мекунад ва устувортар аст.

Хулоса: WordPress-ро дар ритми тоза нигоҳ доред

Вазифаҳои ба нақша гирифташудаи WordPress ба монанди як банд мебошанд.

Ҳар як плагин мисли мусиқинавоз аст, ки ҳар кадоми онҳо нақши худро барои эҷоди як оҳанги ҳамоҳанг иҷро мекунанд.

Аммо агар мусиқичиён аллакай рафта бошанд, аммо нотаҳо ҳанӯз ҳам дар он ҷо бошанд, ин танҳо садо аст.

Бартараф кардани худкори корҳои нодурусти CRON ин садоро тоза мекунад ва кори системаро бо суръати тоза нигоҳ медорад.

Дар асри рақамӣ, самаранокӣ ҳаёт аст.

Самаранокии вебсайт на танҳо аз эффектҳои ҷолиби фронтенди он, балки аз идоракунии дақиқи backend низ вобаста аст.

Азхуд кардани ин рамз ба шумо имкон медиҳад, ки WordPress худро шифо диҳад.

Чунон ки Гегел гуфта буд: «Озодӣ ин нест, ки ҳар кореро, ки мехоҳӣ, анҷом диҳӣ, балки худдорӣ кардан аст».

Танҳо бо омӯзонидани худтанзимкунии WordPress-и худ, шумо воқеан метавонед қудрати озодиро раҳо кунед.

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ Мақолаи "Сирри суръат бахшидани вебсайти WordPress: Ба таври худкор нест кардани вазифаҳои ба нақша гирифташудаи нодурусти CRON" метавонад барои шумо муфид бошад.

Хуш омадед ба мубодилаи истиноди ин мақола:https://www.chenweiliang.com/cwl-33971.html

Барои кушодани ҳилаҳои пинҳонии бештар🔑, хуш омадед ба канали мо дар Telegram ҳамроҳ шавед!

Поделиться ва лайк, агар ба шумо писанд омад! Саҳмияҳо ва лайкҳои шумо ангезаи доимии мо мебошанд!

 

发表 评论

Суроғаи почтаи электронии шумо нашр намешавад. 必填 项 已 用 * Нишон

Директорияи мақолаҳо
Акс аз бойгонӣ