cron-job su cPanel: accortezze e suggerimenti per la gestione La guida integrativa di riferimento per eseguire script temporizzati dal vostro sito

<span class="entry-title-primary">cron-job su cPanel: accortezze e suggerimenti per la gestione</span> <span class="entry-subtitle">La guida integrativa di riferimento per eseguire script temporizzati dal vostro sito</span>

I cron-job sono una delle caratteristiche avanzate più importanti per un servizio di hosting: essi permettono, nelle circostanze più svariate, di eseguire in automatico degli script, con la possibilità di decidere quando (ed ogni quanto) farlo. La sintassi di un cron-job viene ereditata direttamente da quella UNIX, dal quale anche cPanel eredita buona parte delle caratteristiche, con l’aggiunta di una comodissima interfaccia grafica.

Questa guida integra la precedente Come creare e configurare cron-job con il cPanel, per cui suggerisco di leggerla prima di procedere oltre.

Ad esempio, possiamo creare un semplice file PHP che va ad eseguire ogni mezz’ora il prelievo di dati da una fonte esterna – le quotazioni in borsa, un feed RSS, ecc. – e, sempre internamente, la sua acquisizione nel database MySQL del sito. I cron job sono molto utili per realizzare applicazioni di monitoraggio costante, e fornire all’utente dati automatizzati in tempo reale. Quello che stiamo facendo in sostanza corrisponde all’esecuzione di un file PHP via terminale di comando, quindi per intenderci:

PHP mioscript.PHP

con l’aggiunta di una frequenza, cioè stabilire a priori ogni quanto dovremo eseguire quell’operazione senza dovercene più preoccupare in seguito.

Un cron-job in realtà non per forza si scrive PHP, in quanto è estendibile a qualsiasi linguaggio lato server che sia supportato dal sistema: le operazioni di pianificazione ne trarranno vantaggio indubbio, anche perchè il poter eseguire comandi di qualsiasi genere permette applicazioni potenzialmente sconfinate.

I punti critici, in questi casi, sono almeno quattro:

  • l’hosting potrebbe porre dei limiti alla frequenza di esecuzione dei cron-job (gli intervalli di esecuzione in HostGator, ad esempio, devono essere di almeno 15 minuti sulla maggioranza dei piani di hosting);
  • l’eccesso di cron-job può saturare le risorse del sistema, quindi bisogna fare attenzione a dimensionare gli script;
  • il cron-job consuma banda, ed eventualmente spazio su disco, come qualsiasi altro processo;
  • lo scripting di un cron deve essere eseguito con qualche piccola accortezza rispetto alla programmazione del codice di un plugin o di un elemento puramente visuale / lato web.

In effetti il monitoraggio del tempo di esecuzione di uno script in un cron dovrebbe essere prioritario: questo, non tanto quando siano presenti operazioni usuali (I/O sul database locale), quanto operazioni che occupano memoria (I/O di file XML) o che tendono a consumare banda (acquisizione di dati da URL esterne via FTP o HTTP). Ogni script messo in cron periodico, in effetti, non dovrebbe essere più lento di qualche secondo: per misurare il tempo di esecuzione di uno script PHP potete sfruttare la funzione microtime() all’inizio ed alla fine del file PHP stesso.

L’impostazione di cron-job nella pratica si può effettuare dopo aver fatto login su cPanel: cerchiamo l’icona del “Cron job” oppure andiamo a cercarlo nella finestra di ricerca delle varie applicazioni. Cliccandoci, a seconda della versione di cPanel che l’hosting ci offre dovremmo vedere qualcosa del genere.

Dal menù principale andiamo a scrivere “Cron job” (senza virgolette) all’interno della casella di ricerca Trova, e facciamo click sull’icona corrispondente (sotto “Strumenti avanzati”).

Come creare un cron-job, ed alcune accortezze per farlo

L’interfaccia per creare un nuovo cron-job somiglia molto a quella rappresentata nella seguente screenshot: anche se è in inglese (non tutti gli hosting traducono cPanel, in effetti), dovrebbe essere chiaro quello che stiamo facendo, anche se la sintassi di temporizzazione (Minute, Hour, Day, Month, Weekday) potrebbe risultare ostica, almeno all’inizio. Ogni casella di testo rappresenta una certa frazione temporale, quindi ad esempio se vogliamo che lo script sia eseguito ogni mezz’ora andremo a scrivere:

0,30 * * * *

che significa, letto in orizzontale anzichè in verticale, esegui ogni 30 minuti e ogni ora, giorno, mese e giorno settimanale (gli asterischi sono wildcards, in effetti).

Il campo Command è quello che dovrà contenere il comando da eseguire: di norma, si richiama un file eseguibile del linguaggio (php oppure perl) in alcune configurazioni specificandone la cartella (usr/bin/perl, per dire), seguito da eventuali parametri e dal nome dello script con il suo percorso relativo alla cartella dell’eseguibile. Bisogna infasetti sapere che lanciamo php ogni mezz’ora, per dire, lo script che contenga eventuali include o require dovrà essere tarato considerando che il path di partenza sarà quello di PHP stesso. Quindi non possiamo scrivere nel codice del nostro script cose del genere:

require ("../../../path/to.php");

ma dovremmo eventualmente optare per riscritture del tipo:

require ("htdocs/path/to.php");

(fonte: guida ufficiale cPanel)

Ti piace questo articolo?

0 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.