iControlWP

In questo articolo, spieghiamo:

  • Cos’è il WP Cron?
  • Come funziona?
  • Perché fallisce?
  • Quali problemi causano gli errori del WP Cron?
  • Come risolvere WP Cron

Allora, cominciamo…

Che cos’è WP Cron?

Cron è un comando UNIX per programmare lavori da eseguire in futuro. Viene normalmente utilizzato per programmare un lavoro che viene eseguito periodicamente.

WordPress utilizza un file chiamato wp-cron.php come un cron job virtuale, o compito programmato, al fine di automatizzare cose come

  • la pubblicazione di post programmati
  • il controllo degli aggiornamenti di plugin o temi
  • l’invio di notifiche e-mail
  • il backup
  • gli aggiornamenti automatici di WordPress
  • …. e così via.

Come funziona?

Ad ogni caricamento di pagina, WordPress controlla se c’è la necessità di eseguire WP Cron. Se c’è una necessità, allora cerca di fare una richiesta via HTTP al file wp-cron.php.

La chiamata di questo file aiuta a mantenere il WP Cron in esecuzione come un processo separato in background senza ritardare il tempo di caricamento della pagina per l’utente. Una volta che il WP Cron si avvia, continua a funzionare fino a quando tutti i lavori richiesti sono completati o fino a quando non raggiunge un tempo di esecuzione come impostato nella configurazione del server.

È importante spiegare che, nella sua configurazione predefinita, WordPress non utilizza un vero e proprio cron job per la programmazione e altri compiti correlati. Invece, ogni volta che una pagina viene caricata su un sito WordPress, WordPress esegue il file wp-cron.php. In pratica chiede “è già ora di fare qualcosa?”.

Se ci sono dei compiti programmati al momento del caricamento della pagina verranno eseguiti. Ma bisogna notare che WP Cron non viene eseguito costantemente come il cron di sistema.

WP Cron verrà attivato solo al caricamento della pagina – cioè quando qualcuno visita una pagina del tuo sito. Questo significa che, per esempio, se hai un compito programmato per le 16:00 ma non hai visitatori fino alle 22:00, il tuo compito non verrà eseguito fino ad allora.

Nota: A volte puoi vedere URL con ?doing_wp_cron= seguito da una stringa di numeri.

Per esempio:

https://example.com/what-is-wp-cron-article?doing_wp_cron=123456.874251298799871371475

Questo accade perché, per fare qualche elaborazione in background (come la pubblicazione di post programmati), WordPress vi reindirizza all’URL con ?doing_wp_cron.

Leggi di più su questo qui.

Perché fallisce?

Così, quando qualcuno arriva su qualsiasi pagina del tuo sito WordPress, il file wp-cron.php potrebbe avviarsi e controllare se ha bisogno di inviare qualcosa

Su molti host WordPress, questo verrà eseguito come previsto. Ma, alcuni host disabilitano questa funzionalità dall’esecuzione perché significa che un gran numero di visitatori può lanciare il cron job virtuale un sacco di volte, utilizzando le risorse sul vostro server. È anche una potenziale vulnerabilità di sicurezza.

Un’altra ragione è che alcuni plugin e temi possono causare errori fatali durante l’elaborazione del cron (poiché potrebbero non essere stati testati correttamente) e questo interromperà l’esecuzione del processo cron.

Suggerimento: anche se non è conclusivo e serve solo come indicazione nel caso di problemi gravi, sulla Security Dashboard di Shield c’è una voce sotto la sezione “Recent Events Log” che mostra l’ultima volta che il semplice test cron è stato eseguito:

Questo ti direbbe se i tuoi cron stanno, in generale, funzionando o meno. Non significa che tutti i tuoi cron funzionano, ma significa che il tuo sistema WP Cron è probabilmente OK.

Nota: Puoi attivare WP Cron manualmente. La prima cosa da fare è costruire il link, e questo è come farlo:

  1. Prendi il tuo URL di amministrazione, ad esempio example.com/wp-admin/
  2. Sostituisci “/wp-admin/” con “/wp-cron.php?setcronjob”

Il link sarà simile a questo:

example.com/wp-cron.php?setcronjob

Basta aprire quel link in una scheda separata e il WP Cron sarà attivato.

Quali problemi causano gli errori di WP Cron?

Se il cron si sta rompendo, non funziona correttamente:

  • Gli aggiornamenti automatici di WordPress non verranno eseguiti
  • Il controllo degli aggiornamenti di plugin o temi fallirà
  • I post programmati non verranno pubblicati
  • Se WordPress non usa un vero lavoro cron per la programmazione e altre attività correlate, le notifiche e-mail, i rinnovi automatici, le fatture, le notifiche di entrata/uscita dal magazzino falliranno.
  • Il backup del sito fallirà per i plugin di backup che dipendono dal cron

Inoltre,

  • Ci può essere un lungo ritardo tra gli aggiornamenti rilasciati, e gli aggiornamenti installati
  • I plugin premium non collegano correttamente il loro codice di aggiornamento

    Alcuni plugin premium non hanno testato il loro codice di aggiornamento personalizzato con il cron di WordPress. Questo significa che quando il cron viene eseguito, il loro codice di aggiornamento non funziona e gli aggiornamenti automatici delle risorse premium falliranno.

Questi sono solo alcuni dei problemi più evidenti che abbiamo visto.

Si prega di notare che, se il cron non funziona, tutti i compiti automatici falliranno.

Come sistemare il WP Cron

Il WP Cron può essere problematico e individuare dove un cron va in crash è un lavoro difficile.

Ti consigliamo vivamente di leggere questo articolo qui.

Puoi anche leggere:

  • Perché gli aggiornamenti automatici di WordPress non funzionano sempre?

Leave a Reply