Anyè Atik
Pi move bagay pou yon sèvè entènèt se pa lè li pa fonksyone, men se lè travay ki pa gen sans trennen l desann.
在 WordPress Nan mond WP-Cron an, li tankou yon revèy envizib, k ap planifye plizyè travay ki gen yon delè an silans.
Okòmansman, li te yon zouti itil, men souvan li vin tounen yon asasen envizib ki ralanti pèfòmans akòz "tach zonbi" yo ki rete apre yo fin dezenstale plugins yo.
Lanati ak danje kache WP-Cron yo
WP-Cron pa yon Cron nan nivo sistèm, men pito yon mekanis travay pwograme ke WordPress li menm simile.
Li sèlman verifye si gen nenpòt travay pou egzekite lè aksè itilizatè a deklanche li.
Sa vle di ke si yon plugin anrejistre yon travay chak jou, travay sa a ka toujou egziste menm si plugin nan dezinstale.
Rezilta a se ke WordPress ap eseye egzekite yon hook ki pa menm egziste chak jou.
Sa pa sèlman gaspiye resous, men li ka lakòz tou yon akimilasyon dosye ki pa valab nan baz done a.
Selon dokimantasyon ofisyèl pou devlopè WordPress la, planifikasyon travay WP-Cron an depann de... _get_cron_array() Pou rekipere tout travay ki anrejistre yo.
Si fonksyon ki koresponn ak zen an pa egziste ankò, sistèm nan ap toujou eseye egzekite li, men nan fen a li pral jis ap vire san objektif.
Poukisa netwaye travay pwograme ki pa valab yo?
Imajine sit WordPress ou a tankou yon biwo.
Anplwaye yo rive alè chak jou, men gen kèk nan yo ki deja kite konpayi an.
Nimewo idantifikasyon anplwaye yo toujou nan sistèm nan, epi machin prezans lan ap tann pou yo pase kat yo chak jou.
Sa a se yon operasyon CRON ki pa valab.
Si li pa netwaye pandan yon bon bout tan, baz done a ap genyen... wp_options Tablo a pral ranpli epi li pral vin envalid. _transient done.
Pi mal toujou, verifikasyon envalid yo souvan ogmante chay ekzekisyon sou PHP.
Rechèch endike ke plis pase [kantite] sit entènèt WordPress 30% pèt pèfòmansSa a se akòz travay CRON ki pa valab oswa redondan (Sous: Smashing Magazine Technical Analysis).
Aplikasyon kòd pou retire otomatikman travay ki pa valab yo
Solisyon an vrèman elegant.

Nou sèlman bezwen egzekite yon script deteksyon chak jou pou eskane tout travay pwograme yo, epi si li jwenn ke fonksyon ki koresponn ak hook la pa egziste ankò, li pral retire li.
Kòd fonksyon sa yo ka reyalize sa:
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' );
}
Kòd sa a fè twa bagay:
- Repete tout travay ki pwograme yo:pase
_get_cron_array()Rekipere travay ki anrejistre kounye a. - Teste si zen an efikas:si
$wp_filter[$hook]Si li vid, sa vle di pa gen okenn fonksyon ki koresponn pou zen sa a. - Retire travay ki pa valab yorele
wp_unschedule_event()Efase travay la.
Finalman, li te anrejistre tou yon travay chak jou pou asire netwayaj otomatik chak jou.
Analiz pwofon sou lojik kòd la
Anpil moun twouve kòd sa a konplike, men lojik la an reyalite byen senp:
- Premye bouk laIterasyon nan tout travay yo pa timestamp.
- Dezyèm bouk laTcheke travay yo pa non zen an.
- Twazyèm bouk laNetwaye chak travay, siyati travay la ak paramèt yo youn pa youn.
Metòd nidifikasyon twa nivo sa a asire ke pa gen okenn travay ki pa valab ki rate.
ak wp_unschedule_event() Sa a se metòd pou retire done yo ofisyèlman rekòmande pa WordPress, epi li pral netwaye tou anrejistreman ki gen rapò yo nan baz done a.
Senaryo aplikasyon aktyèl yo
pa egzanp.
Ou enstale youn SEO Plugin lan jenere yon plan sit chak jou.
Ou te dezinstale plugin nan pita, men travay CRON li a te rete la.
Rezilta a se ke WordPress ap eseye egzekite chak jou. seo_generate_sitemap Kwòk sa a.
Piske fonksyon an pa egziste ankò, sistèm nan ka sèlman fonksyone pou gremesi.
Si ou aktive kòd ki anwo a, travay sa a ki pa valab ap efase otomatikman nan jou kap vini an.
Efè amelyorasyon pèfòmans
Baze sou done tès reyèl yo, yon sit entènèt WordPress gwosè mwayen (apeprè 50 plugins) apre yo fin aktive netwayaj otomatik la:
- Rediksyon nan demann baz done yo 12%.
- Vitès chajman paj la amelyore 0.3 segonn.
- Travay envalid chak jou yo diminye 20+.
Done sa yo soti nan eksperyans konparatif nan rapò pèfòmans WP Engine la.
Pi bon pratik ak sijesyon optimize
Anplis netwayaj otomatik la, men kèk sijesyon pou optimize:
- Enspekte operasyon CRON yo regilyèmanLè w sèvi ak plugins tankou WP Crontrol, ou ka wè tout travay yo vizyèlman.
- Redui plugins redondan yoLè w ap dezinstale yon plugin, li pi bon pou efase travay pwograme li yo manyèlman.
- Sèvi ak Cron nan nivo sistèm lanPou sit entènèt ki gen anpil trafik, li rekòmande pou enfim WP-Cron epi sèvi ak sèvè Cron reyèl sèvè a pito.
Sa evite pwoblèm depandans aksè WP-Cron epi li pi estab.
Konklizyon: Kenbe WordPress nan yon ritm pwòp
Tach pwograme WordPress yo tankou yon gwoup mizik.
Chak plugin se tankou yon mizisyen, chak jwe pwòp wòl pa li pou kreye yon melodi amonye.
Men, si mizisyen yo deja ale men patisyon an toujou la, se jis bri.
Retire travay CRON ki pa valab yo otomatikman netwaye bri sa a, sa ki kenbe sistèm nan ap fonksyone nan yon vitès pwòp.
Nan epòk dijital la, efikasite se lavi.
Pèfòmans yon sit entènèt pa depann sèlman de bèl efè front-end li yo, men tou de jesyon metikuleu back-end li an.
Metrize kòd sa a ap ba ou kapasite pou WordPress geri tèt li.
Jan Hegel te di yon lè, "Libète se pa fè sa ou vle, men kontwole tèt ou."
Se sèlman lè w anseye WordPress ou a disipline tèt li ou ka vrèman libere pouvwa libète a.
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ Atik "Sekrè pou Akselere Sit Wèb WordPress: Retire Otomatikman Tâch Planifye CRON ki Pa Valab yo" ki pataje isit la ka itil ou.
Byenvini pataje lyen atik sa a:https://www.chenweiliang.com/cwl-33971.html
