WP-Cron Panoramica

WP-Cron esegue attività specifiche per i siti WordPress alimentati. Il nome Cron deriva dal sistema Unix per la pianificazione dei lavori, che vanno da una volta al minuto a una volta all’anno. Che si tratti di manutenzione ordinaria o di avvisi pianificati, qualsiasi comando che può essere eseguito su Unix senza l’intervento dell’utente può essere pianificato come attività Cron.

WP-Cron è simile in natura a Cron, ma differisce in un paio di modi molto importanti. Questa funzione è progettata esclusivamente per gestire le attività di routine di WordPress:

  • Controlla la nuova versione del core, dei temi e dei plugin di WordPress
  • Ripulisci lo spam

I plugin e i temi possono aggiungere attività da eseguire a intervalli regolari. Ad esempio, se hai un plugin che analizza Twitter per i tuoi tweet e poi li incorpora nei commenti, è molto probabilmente fatto con un lavoro WP-Cron. WP-Cron apre un intero nuovo mondo di cose che un sito WordPress alimentato può fare.

Come viene attivato WP-Cron?

La principale differenza tra Cron e WP-Cron è il modo in cui WP-Cron viene attivato. Cron è un processo di sistema che viene eseguito ogni minuto e cerca le attività da eseguire. WP-Cron, perché è un sistema basato sul web, può essere eseguito solo quando qualcuno visita il sito. Pertanto, quando qualcuno naviga sul tuo sito WordPress, WP-Cron controlla se è necessario fare qualcosa. Grazie agli sviluppatori principali di WordPress, lo fa in un modo che non influisce negativamente sulle prestazioni del tuo sito.

Problemi con siti a basso traffico

Siti WordPress a basso traffico potrebbero verificarsi attività saltate quando questa funzione viene attivata dai visitatori. Se le persone non visitano il tuo sito, WP-Cron non può essere eseguito. Ciò non significa che la tua pagina sarà lenta rispetto ai lavori precedenti quando qualcuno alla fine visita il tuo sito. Indipendentemente dal numero di attività che WP-Cron deve eseguire, vengono eseguite in background in modo che le prestazioni del tuo sito non siano influenzate negativamente.

Problemi con siti ad alto traffico

Se il tuo sito WordPress alimentato è ad alto traffico, si possono incorrere in problemi con WP-Cron. I problemi principali che emergono sono le condizioni di gara e i processi di lunga durata.

  • Condizioni di gara: Quando più di un utente visita il tuo sito e attiva WP-Cron per eseguire la stessa attività. WP-Cron lavora duramente per eliminare le condizioni di gara, ma possono ancora accadere, specialmente su siti ad alto traffico.
  • Processo di esecuzione lungo: qualsiasi attività che richiede più tempo rispetto allo standard 60 secondi per l’esecuzione. Gli sviluppatori possono regolare per quanto tempo un’attività PHP può essere eseguita con la funzioneset_time_limit(). Se questo è impostato per essere più lungo della finestra tra le attività, puoi finire con più di una copia di wp-cron.php in esecuzione.

Entrambi questi problemi sono risolti all’interno del blocco interno di WP-Cron e non sono problemi comuni; tuttavia, possono ancora accadere occasionalmente.

Gestisci WP-Cron internamente

WP-Cron è preconfigurato e pronto per l’esecuzione, quindi non devi fare nulla per abilitarlo sui tuoi siti WordPress.

Durante l’installazione iniziale di WordPress, vengono configurate automaticamente diverse attività. È possibile utilizzare alcuni semplici comandi dalla riga di comando, o uno dei diversi plugin, per trovare i lavori esatti eseguiti da WP-Cron.

WP-Cron Dalla CLI

Se hai installato Terminus, puoi facilmente vedere tutti i dettagli di ciò che sta succedendo con WP-Cron. Terminus, tramite WP-CLI, può mostrarti dettagli come:

  • Cosa è programmato per l’esecuzione
  • Cosa verrà eseguito dopo
  • I ganci degli eventi impostati

Puoi anche pianificare i tuoi lavori, eseguire lavori esistenti e gestire praticamente tutto ciò che riguarda WP-Cron—tutto dalla riga di comando.

Una delle prime cose che vorrai fare è testare WP-Cron per assicurarti che tutto funzioni correttamente. Quando esegui il comando seguente, assicurati di sostituire SITE_NAME con il nome del tuo sito dalla Dashboard di Pantheon e sostituire ENV_NAME con l’ambiente desiderato (“dev”, “test”, “live” o nome del ramo multidev).

terminus wp <site>.<env> -- cron test

Se tutto funziona correttamente, il risultato è il seguente:

Success: WP-Cron spawning is working as expected.

Questo ti permette di sapere che WP-Cron funziona correttamente sul tuo sito. Da qui, puoi eseguire qualsiasi comando correlato a cron con WP-CLI. Quando usi WP-CLI per gestire il tuo sito WordPress ospitato in Pantheon, dovresti usare Terminus. Il formato dei comandi è il seguente:

terminus wp <site>.<env> -- cron <your wp-cron command and switches here>

Tutti i comandi terminus wp richiedono un nome del sito e un ambiente per funzionare.

Nota

Se hai protetto il tuo sito utilizzando l’impostazione di sicurezza sul tuo Dashboard, Terminus non sarà in grado di eseguire cron e potresti vedere errori di report di stato sul Dashboard.

Plugin

Se vuoi tenere d’occhio WP-Cron ma non ti piace la riga di comando, ci sono diversi plugin che puoi usare. WP Crontrol, ad esempio, ti mostrerà tutti gli eventi in programma per il tuo sito. Puoi creare, modificare, eseguire o eliminare lavori immediatamente dalla dashboard di amministrazione di WordPress. È inoltre possibile collegare nuove azioni in pianificazioni o spostare le azioni esistenti in nuove pianificazioni dall’interno della sezione Strumenti.

WPX Cron Manager Lite farà un lavoro simile con un’interfaccia utente leggermente diversa. Questo plugin richiede di fare un’installazione una tantum del framework WPX, che si può fare direttamente dalla pagina plugin manager.

Gestisci WP-Cron esternamente

Se stai cercando un maggiore controllo sui lavori cron del tuo sito, o se non vuoi che WP-Cron gestisca le attività internamente, puoi invece utilizzare cron esterni. Ciò risolverà i problemi discussi sopra per i siti ad alto traffico e a basso traffico.

Disabilita WP-Cron

La prima cosa che devi fare è disabilitare l’elaborazione interna di WP-Cron. Aggiungi la seguente riga al filewp-config.php:

wp-config.php
define('DISABLE_WP_CRON', true);

Nota

Ci sono molti compiti importanti di cui WP-Cron si occupa, quindi preparati a completare tutti i passaggi seguenti.

Servizi gratuiti

Una volta disabilitato WP-Cron, avrai bisogno di un servizio che chiami un URL a intervalli regolari. Il modo più semplice per farlo è impostare un account con un servizio cron gratuito:

  • EasyCron
  • Imposta Cron Job
  • cron-job

Uno dei servizi sopra elencati porterà a termine il lavoro. Disabilitando WP-Cron, è stato disattivato il controllo automatico e la chiamata dello script wp-cron.php. Ora dovrai chiamare tu stesso quell’URL usando uno dei servizi sopra. Con la maggior parte di essi, è facile come questo:

  1. Impostare un account
  2. Impostare un lavoro che chiama https://yourdomain.tld/wp-cron.php?doing_wp_cron

Nota

Sostituire `yourdomain.tld ‘ con il tuo dominio.

A seconda del servizio utilizzato, è possibile impostare più lavori in momenti diversi. Creare un singolo lavoro che chiama lo script wp-cron.php del tuo sito ogni 15 minuti è tutto ciò di cui hai bisogno. WP-Cron si occuperà del resto. Se si creano nuove pianificazioni che devono essere eseguite più spesso di una volta ogni 15 minuti, sarà necessario regolare il lavoro di conseguenza.

È importante non aggiungere un valore alla variabile di query doing_wp_cron; deve essere vuota affinché il cron funzioni correttamente.

Utilizzo del proprio server

Se si amministra il proprio server, è possibile utilizzare il servizio cron per effettuare una chiamata allo scriptwp-cron.php. Dovrai imparare come impostare correttamente un lavoro Cron e usare qualcosa comewget ocurl per recuperare una pagina web. A meno che non si prendano precauzioni speciali, non è più sicuro utilizzare il proprio server rispetto a un servizio cron basato sul Web; tuttavia, ti dà più controllo.

Sicurezza

Per la maggior parte, wp-cron.php è sicuro. C’è solo un parametro che puoi passare che influenzerà lo script (doing_wp_cron). Questo valore $_GET non viene filtrato; viene utilizzato solo come flag e non come input per un processo o una variabile. Oltre a ciò, tutti gli input vengono ignorati.

Mentre nessun script su un server collegato a Internet è sicuro al 100%,wp-cron.php attualmente non presenta vulnerabilità o exploit noti.

WordPress Cron Plugins

WordPress ha molti plugin che controllano sia le attività interne di WP-Cron che i lavori Cron esterni. Dal momento che Pantheon non fornisce servizi Cron, non raccomandiamo o scoraggiamo l’uso di un determinato plugin. Ti invitiamo a controllare l’elenco dei plugin WordPress Cron e sperimentare nel tuo ambiente di sviluppo per trovare quello che meglio si adatta alle tue esigenze.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.