<

Cron

Ultima modifica: 25 Giugno 2026

Il wordpress Gpci framework integra un sistema personalizzato di gestione cron per l'esecuzione pianificata di funzioni come potrebbero essere manutenzioni, invio email basate su database, funzioni automatiche e praticamente tutto quello che potrebbe venire in mente. Questo sistema è completamente opzionale e separato dai WP-Cron, che possono sempre essere utilizzati se ritenuto necessario. La gestione del sistema dipende dal launcher e può essere azionato soltanto tramite server.

Configurare i processi cron

Per configurare un processo è necessario aggiungerlo alla configurazione $GLOBALS['gpci']['config']['php']['cron']['job'], ogni job è un array composto dalle seguenti chiavi:

id

Stringa univoca per identificare ogni processo. Se non assegnato un id il processo non sarà eseguito.

function

Funziona anonima o nome funzione che sarà eseguita dal processo. Questo parametro è obbligatorio altrimenti non sarà eseguito il processo.

conditions

Eventuali condizioni di esecuzione del processo. Se il risultato è false il processo non sarà eseguito. Utilizzare per condizioni avanzate.

hour

Eventuale ora in formato 00 - 23 (allineata con quella del sito) che sarà controllata per eseguire il processo. E' semplicemente una condizione semplificata, potrebbe essere utilizzato conditions.

minute

Minuto in formato da 00 fino a 59. Come sopra.

Esempi

$GLOBALS['gpci']['config']['php']['cron']['job'][] = [
  [
    'id'        => 'lavoro1',
    'function'	=> 'nome_funzione'
  ]
];

//processo programmato alle 09:30
$GLOBALS['gpci']['config']['php']['cron']['job'][] = [
  [
    'id'        => 'lavoro1',
    'hour'      => 09,
    'minute'    => 30,
    'function'	=> function(){
      //istruzioni php
    }
  ]
];

Azionare uno o più processi Cron

I processi cron possono essere azionati tramite configurazione sul server oppure tramite php. E' possibile azionare tutti i processi insieme o uno soltanto, utilizzando le condizioni o i parametri hour/minute è possibile configurare una sola chiamata ristretta (esempio ogni ora) e limitare l'esecuzione tramite i parametri (esempio un processo solo alle 10 e un altro solo alle 11). Nel risultato non cambia nulla ma se non si ha sempre accesso al server(esempio cPanel) o risulta più scomodo configurare tramite il pannello dell'hosting potrebbe essere più semplice configurare una sola chiamata e gestire tutto il resto tramite configurazione del framework.

Azionare processi cron da cPanel

Per azionare uno o più processi cron da cPanel è opportuno verificare la documentazione del servizio di hosting, ma dovrebbe essere qualcosa di molto semplice come:

  1. Pannello cPanel/Avanzate/Processi Cron
  2. aggiungere nuovo processo cron specificando l'intervallo (giorno, minuto, ecc...), scrivere nel campo comando qualcosa come:
//esegue tutti i processi cron (per sfalsarli utilizzare le condizioni temporali)
launch="cron" cron_jobs="*" sp-php /home/nome_utente/public_html/blog/wp-content/themes/gpci/php/launcher.php

//esegue un determinato processo cron
launch="cron" cron_jobs="id_job" sp-php /home/nome_utente/public_html/blog/wp-content/themes/gpci/php/launcher.php

//esegue tutti i processi cron e disabilita output ed errori (filtrarli con condizioni temporali)
launch="cron" cron_jobs="*" sp-php /home/nome_utente/public_html/blog/wp-content/themes/gpci/php/launcher.php >/dev/null 2>&1

Documentazione rilevante

Azionare processi cron da nas Synology

Per azionare uno o più processi cron da nas Synology è molto semplice, andare in:

  1. Pannello di controllo/utilità di pianificazione
  2. creare nuova attività pianificata (o azionata per farlo attivare manualmente) come Script definito dall'utente
  3. compilare i campi utili e in comando/Script definito dall'utente scrivere qualcosa come:
launch="cron" cron_jobs="*" /usr/local/bin/php84 /volume1/web/cartella_installazione_wordpress/wp-content/themes/gpci/php/launcher.php

Attenzione soprattutto a:

  • parte iniziale del percorso (/usr/local/bin/php84): se necessario cambiare php84 con qualcosa come php83 o php85 in base alla propria versione php
  • la destinazione finale (/volume1/web/cartella_installazione_wordpress/wp-content/themes/gpci/php/launcher.php) sarà ovviamente diversa, usare File station per copiare il percorso al file

Azionare processi cron tramite php

Per azionare uno o più processi cron da php è sufficiente lanciare la funzione php RunCronJobs come da esempi.

Azionare processi cron tramite richiesta remota

Per azionare uno o più processi cron tramite richiesta remota è possibile utilizzare ajax, configurare un'azione remota e poi lanciare php come visto sopra. Esempio: