Нийтлэлийн лавлах
Вэб серверийн хувьд хамгийн муу зүйл бол зогсолт биш, харин утгагүй ажлуудад чирэгдэн орох явдал юм.
在 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 Magazine Technical Analysis).
Хүчингүй даалгавруудыг автоматаар устгах кодын хэрэгжилт
Шийдэл нь үнэндээ нэлээд дэгжин юм.

Бид хуваарьт бүх даалгавруудыг сканнердахын тулд өдөр бүр илрүүлэх скрипт ажиллуулахад л хангалттай бөгөөд хэрэв дэгээтэй харгалзах функц байхгүй болвол үүнийг устгах болно.
Дараах функцийн кодууд үүнийг хийж чадна:
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' );
}
Энэ код нь гурван зүйлийг хийдэг:
- Төлөвлөсөн бүх ажлуудыг давтах: нэвтрүүлэх
_get_cron_array()Одоогоор бүртгэгдсэн ажлуудыг татаж авах. - Дэгээ үр дүнтэй эсэхийг шалгана уу:хэрэв
$wp_filter[$hook]Хэрэв энэ нь хоосон байвал энэ дэгээнд харгалзах функц байхгүй гэсэн үг юм. - Буруу даалгавруудыг устгах: дуудлага
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 ажлуудыг автоматаар арилгах нь энэ чимээг арилгаж, системийг цэвэр хурдаар ажиллуулдаг.
Дижитал эрин үед үр ашиг бол амьдралын гол зүйл юм.
Вэбсайтын гүйцэтгэл нь зөвхөн түүний гайхалтай фронт-энд эффектээс гадна нарийн ар талын менежментээс хамаарна.
Энэ кодыг эзэмшсэнээр WordPress өөрийгөө эдгээх чадварыг танд олгоно.
Гегелийн хэлсэнчлэн "Эрх чөлөө гэдэг бол хүссэн зүйлээ хийх биш, харин өөрийгөө хязгаарлах явдал юм".
Зөвхөн WordPress дээрээ өөрийгөө сахилга баттай болгохыг зааснаар л та эрх чөлөөний хүчийг үнэхээр чөлөөлж чадна.
Hope Chen Weiliang блог ( https://www.chenweiliang.com/ Энд хуваалцсан "WordPress вэбсайтын хурдыг нэмэгдүүлэх нууцууд: Хүчингүй CRON хуваарьт даалгавруудыг автоматаар устгах" нийтлэл танд тустай байж магадгүй юм.
Энэ нийтлэлийн холбоосыг хуваалцахад тавтай морилно уу:https://www.chenweiliang.com/cwl-33971.html
