Che cosa è un CRON e per cosa puoi utilizzarlo?
“Che diavolo è un cron?” Ricevo questa domanda almeno una volta al mese da non chi non è uno sviluppatore. In effetti è un’ottima domanda. Tuttavia la devo dividere in due:
- Cos’è un CRON?
- Cos’è WP-CRON?
Cos’è un CRON?
Fondamentalmente, un cron è un pianificatore basato sul tempo. Gestisce le attività che devono essere eseguite su base regolare in un momento specifico. Ad esempio, se vuoi che il tuo blog WordPress mostri le previsioni del tempo nell’intestazione, ogni mattina devi andare a cercarle e inserirle. Ovviamente puoi chiedere a qualcuno di accedere ogni mattina, andare a prendere le previsioni e incollarle in un widget, ma una strategia migliore è avere un programma che lo fa per te. Questo viene eseguito ogni mattina e parla con un’API per recuperare le previsioni del giorno e aggiornare il database. Il programma che esegue quel programma che la mattina ti recupera il meteo è chiamato CRON. Il nome deriva da “cronologico” per dare l’idea di un programma che gestisce le cose “in ordine di tempo”.
La maggior parte dei sistemi oggigiorno hanno il concept di un cron. I sistemi basati su Unix (Unix, Linux, macOS, etc.) hanno una versione di cron tradizionale e anche se alcuni ci disegnano intorno una bella interfaccia grafica, tutto si riduce a un programma chiamato cron e a un file chiamato crontab.
Il programma cron è sempre in esecuzione in background e ogni minuto dà uno sguardo al crontab e capisce se è necessario fare qualcosa.
Il file crontab contiene le informazioni su quando un programma deve essere eseguito e quale programma deve essere eseguito. Ogni riga rappresenta un’attività diversa. Assomiglia a questo.
1 0 * * * ~/fetchForcast.sh
Anche se può sembrare complicato, tutto ciò che dice al cron è che alle 00:01 ogni giorno deve eseguire un programma chiamato fetchForcast.sh. Ecco una semplice guida alla lettura di un crontab.
# ┌───────────── minuti (0 – 59)
# │ ┌───────────── ore (0 – 23)
# │ │ ┌───────────── giorni del mese (1 – 31)
# │ │ │ ┌───────────── mese (1 – 12)
# │ │ │ │ ┌───────────── giorni della settimana (0 – 6) (da Sabato a Domenica;
# │ │ │ │ │ 7 è Domenica in alcuni sistemi)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <comando da eseguire>
1 0 * * * ~/fetchForcast.sh
Ora che hai la chiave di lettura, è più facile, no?! Questo è davvero tutto ciò che c’è da fare con un cron tradizionale. La maggior parte dei provider come SiteGround ti consente di accedere ai cron per il tuo sistema. A volte devi modificare manualmente il crontab, ma molti provider hanno un’interfaccia più semplice da usare. In ogni caso, hai la possibilità di eseguire programmi in un momento specifico e su base regolare.
Cos’è WP-CRON?
Come la maggior parte delle cose, WordPress fa le cose in modo leggermente diverso. Poiché molti creatori di plugin devono essere in grado di programmare che le cose accadano regolarmente e poiché molti proprietari di siti WordPress non sanno dove si trova il loro crontab, tanto meno come modificarlo, WordPress ha reinventato il cron.
Fondamentalmente, WP-CRON si comporta come un cron tradizionale in quanto uno sviluppatore può “programmare” un’attività da svolgere su base regolare. Tuttavia, a differenza di un cron tradizionale, WordPress non ha un programma che è sempre in esecuzione in background sul tuo server. WP-CRON è un processo che viene chiamato ogni volta che viene visualizzata una pagina, quindi su siti con tante visite funziona bene. Tuttavia, se il tuo sito non è molto movimentato, un’attività pianificata per le 2:00 potrebbe essere eseguita alle 5:24 se nessuno visita il tuo sito fino a quel momento. A volte va bene, altre volte questo è un problema.
Se le attività che devi eseguire sono sensibili al tempo e devono essere eseguite all’orario pianificato, WP-CRON non è il pianificatore che fa per te. Se, d’altra parte, le attività che devi svolgere possono essere eseguite “intorno” all’orario in cui le pianifichi, allora WP-CRON va bene. Molto dipende da quanto è visitato il tuo sito.
Grazie! Il tuo commento è trattenuto per moderazione e verrà pubblicato a breve, se correlato a questo articolo del blog. I commenti con richieste di assistenza o risoluzione problemi non verranno pubblicati. In tal caso, ti preghiamo di segnalarli tramite
Inizia la discussione
Grazie! Il tuo commento è trattenuto per moderazione e verrà pubblicato a breve, se correlato a questo articolo del blog. I commenti con richieste di assistenza o risoluzione problemi non verranno pubblicati. In tal caso, ti preghiamo di segnalarli tramite