Sicreti di l'accelerazione di u situ web WordPress: Eliminate automaticamente i travaglii pianificati CRON invalidi

A peghju cosa per un servitore web ùn hè micca u tempu di inattività, ma esse trascinatu da compiti senza significatu.

in WordPress In u mondu di WP-Cron, hè cum'è un orologio invisibile, chì pianifica in silenziu diverse attività cronometrate.

Era inizialmente un strumentu utile, ma spessu diventa un assassinu invisibile chì rallenta e prestazioni per via di i "compiti zombie" lasciati dopu a disinstallazione di i plugins.

A natura è i periculi nascosti di WP-Cron

WP-Cron ùn hè micca un Cron à livellu di sistema, ma piuttostu un mecanismu di attività pianificate simulatu da WordPress stessu.

Verifica solu s'ellu ci sò attività da eseguisce quandu hè attivata da l'accessu di l'utente.

Ciò significa chì se un plugin registra un compitu cutidianu, quellu compitu pò esiste ancu se u plugin hè disinstallatu.

U risultatu hè chì WordPress prova à eseguisce un hook chì ùn esiste mancu ogni ghjornu.

Questu ùn solu spreca risorse, ma pò ancu purtà à un accumulu di registri invalidi in a basa di dati.

Sicondu a ducumentazione ufficiale di u sviluppatore WordPress, a pianificazione di i travaglii di WP-Cron dipende da... _get_cron_array() Per recuperà tutti i travagli registrati.

Sè a funzione currispundente à u ganciu ùn esiste più, u sistema pruverà sempre à eseguisce la, ma à a fine girerà solu senza scopu.

Perchè pulisce i travaglii pianificati invalidi?

Imagine u vostru situ WordPress cum'è un ufficiu.

L'impiegati si presentanu puntuali ogni ghjornu, ma alcuni di elli anu digià lasciatu l'impresa.

I so numeri d'identità d'impiegatu sò sempre in u sistema, è a macchina di presenza aspetta ch'elli passinu e so carte ogni ghjornu.

Questa hè un'operazione CRON invalida.

S'ella ùn hè micca pulita per un bellu pezzu, a basa di dati cuntenerà... wp_options A tavula serà piena è diventerà invalida. _transient dati.

Peghju ancu, i cuntrolli invalidi frequenti aumentanu u pesu di l'esecuzione nantu à PHP.

A ricerca indica chì più di [numeru] siti web WordPress 30% di sprecu di prestazioneQuestu hè duvutu à travaglii CRON invalidi o ridondanti (Fonte: Smashing Magazine Technical Analysis).

Implementazione di codice per a rimuzione automatica di attività invalide

A suluzione hè in realtà abbastanza elegante.

Sicreti di l'accelerazione di u situ web WordPress: Eliminate automaticamente i travaglii pianificati CRON invalidi

Avemu solu bisognu di eseguisce un script di rilevazione ogni ghjornu per scansà tutte e attività pianificate, è s'ellu trova chì a funzione currispondente à u hook ùn esiste più, a rimuoverà.

U codice di e funzioni seguenti pò ottene questu:

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' );
}

Stu codice face trè cose:

  1. Iterate attraversu tutte e attività pianificate: passa _get_cron_array() Recuperà i travaglii attualmente registrati.
  2. Pruvate s'ellu u ganciu hè efficace:sè $wp_filter[$hook] S'ellu hè viotu, significa chì ùn ci hè micca una funzione currispondente per questu ganciu.
  3. Eliminate i travaglii invalidichjama wp_unschedule_event() Sguassà u compitu.

Infine, hà ancu registratu un compitu cutidianu per assicurà a pulizia automatica ogni ghjornu.

Analisi approfondita di a logica di u codice

Parechje persone trovanu stu codice intricatu, ma a logica hè in realtà abbastanza simplice:

  • Primu cicluIterate attraversu tutte e attività per timestamp.
  • Secondu cicluVerificate i travaglii per nome di ganciu.
  • Terzu cicluPulite unu per unu secondu a firma è i parametri di l'attività.

Stu metudu di annidamentu à trè livelli assicura chì nisuna attività invalida ùn sia mancata.

è wp_unschedule_event() Questu hè u metudu di rimuzione ufficialmente raccomandatu da WordPress, è pulirà ancu i registri correlati in a basa di dati.

Scenari di l'applicazione attuale

Per esempiu.

Ne avete installatu unu SEO U plugin genera una mappa di u situ ogni ghjornu.

Avete dopu disinstallatu u plugin, ma u so travagliu CRON hè restatu.

U risultatu hè chì WordPress prova à eseguisce ogni ghjornu. seo_generate_sitemap Questu ganciu.

Siccomu a funzione ùn esiste più, u sistema pò solu funziunà in vanu.

Sè attivate u codice sopra, questu compitu invalidu serà automaticamente pulitu u ghjornu dopu.

Effettu di miglioramentu di e prestazioni

Basatu annantu à i dati di prova attuali, un situ web WordPress di medie dimensioni (circa 50 plugins) dopu avè attivatu a pulizia automatica:

  • Dumande di basa di dati ridotte 12%.
  • A velocità di caricamentu di a pagina hè migliurata 0.3 seconde.
  • Compiti invalidi di ogni ghjornu ridutti 20+.

Questi dati provenenu da esperimenti cumparativi in ​​u rapportu di rendiment di WP Engine.

E migliori pratiche è suggerimenti di ottimizazione

In più di a pulizia automatica, eccu alcuni suggerimenti di ottimizazione:

  • Ispettate regularmente l'operazioni CRONCù plugins cum'è WP Crontrol, pudete vede visivamente tutti i travaglii.
  • Riduce i plugins ridondantiQuandu si disinstalla un plugin, hè megliu sguassà manualmente e so attività pianificate.
  • Aduprà Cron à livellu di sistemaPer i siti web cù un trafficu elevatu, hè cunsigliatu di disattivà WP-Cron è aduprà invece u servitore Cron attuale di u servitore.

Questu evita i prublemi di dipendenza di l'accessu di WP-Cron è hè più stabile.

Cunclusione: Mantene WordPress in un ritmu pulitu

I travaglii pianificati di WordPress sò cum'è una banda.

Ogni plugin hè cum'è un musicante, ognunu ghjoca u so rolu per creà una melodia armoniosa.

Ma s'è i musicanti sò digià partiti ma a spartera hè sempre quì, hè solu rumore.

A rimuzione automatica di i travaglii CRON invalidi pulisce stu rumore, mantenendu u sistema in funzione à un ritmu pulitu.

In l'era digitale, l'efficienza hè a vita.

U rendiment di un situ web dipende micca solu da i so effetti front-end, ma ancu da a so gestione meticulosa di u back-end.

Maestru di stu codice vi darà a capacità di WordPress di autoguarirsi.

Cum'è Hegel hà dettu una volta: "A libertà ùn hè micca fà ciò chì vulete, ma autocontrollu".

Solu insignendu à u vostru WordPress à l'autodisciplina pudete veramente liberà u putere di a libertà.

发表 评论

U vostru indirizzu email ùn serà micca publicatu. I campi richiesti sò aduprati * Etichetta

Articulu Directory
Libru di Top