In Magento alcune operazioni devono essere eseguite periodicamente per permettere di eseguire delle funzioni in modo automatico. Questo è possibile grazie ai Cron Job.
Cos’è un Cron Job
Un Cron è un’operazione che viene eseguita in automatico ad intervalli di tempo regolari. I Cron aiutano i proprietari di negozi nel pianificare comandi che si svolgeranno periodicamente alla data e ora impostata.
In Magento alcune operazioni devono essere eseguite periodicamente. Alcune di queste sono:
- Regole dei prezzi del Catalogo
- Invio di Newsletter
- Generazione della Sitemap XML (Leggi l’articolo su come creare una sitemap XML)
- Notifiche / Alert per i clienti (cambiamenti di prezzo, prodotti di nuovo in stock)
- Aggiornamento automatico delle Valute (Currency)
- Pulizia automatica dei log nel Database
1) Configurazione del Cron
Tramite SSH
Per impostare il cronjob tramite ssh, usa il comando crontab -e. Per eseguire il cron giornalmente, aggiungi una linea come questa:
* * * * * /bin/sh /var/www/vhosts/sitoweb.com/httpdocs/cron.sh
Il codice indicato eseguirà i cron ogni 5 minuti.
Se hai bisogno di maggiori informazioni sulla Shell di Linux e SSH, Questa guida potrebbe esserti utile: SSH per principianti
Tramite Pannello Plesk o Cpanel
Per creare un cronjob specifico che farà eseguire i Cron di Magento (ogni 5 minuti), accedi al tuo web hosting panel (esempio Plesk o Cpanel) e crea un nuovo Cron, o Scheduled Tasc seguendo questi parametri:
- Minute: *
- Hour: *
- Day of the Month: *
- Month: *
- Day of the Week: *
- Command: php -q /var/www/vhosts/sitoweb.com/httpdocs/cron.php
Risultato:
* * * * php -q /var/www/vhosts/sitoweb.com/httpdocs/cron.php
NB: Cambia php -q /var/www/vhosts/sitoweb.com/httpdocs/cron.php con il percorso assoluto della tua installazione Magento
Durante l’impostazione di un cron-job assicurati che l’intervallo di tempo tra un esecuzione e l’altra sia almeno di 15 minuti (non meno di questo) per non rischiare di sovraccaricare la memoria e bloccare il sito.
Ad esempio Magento spende circa 1 minuto per l’indice 1000 prodotti e imposta lo stato “successo” da “In attesa”.
2) Impostare il Cron dall’admin di Magento
Ora che abbiamo impostato l’esecuzione automatica delle operazioni elencate prima in Magento, possiamo accedere a delle configurazioni avanzata nella pagina di configurazione del cron.
Apri quindi il pannello di amministrazione del tuo store Magento e vai in Sistema => Configurazione => Sistema => ‘(Operazioni pianificate) Cron’ tab.
Come Puoi vedere ci sono dei valori già impostati di default.
NB: tutti i tempi sono in minuti.
Impostazioni ottimali per i Cron Magento e Best Practices
Secondo la mia esperienza, è meglio cambiare questi valori con i valori che indico di seguito:
- Genera programma ogni volta: 60
(inserire il periodo di esecuzione, in questo caso 5 minuti – è lo stesso numero che avete inserito nel crontabs:*/5 * * * php -q /var/www/vhosts/sitoweb.com/httpdocs/cron.php ) - Programma prima per: 1Errato se non eseguito entro: 60
E’ il tempo oltre il quale un cron viene interrotto. In questo caso dopo 60 minuti di attività, se il processo non è completato, il sistema lo blocca e lo segnala come errato. - Pulisci la cronologia ogni volta: 120
Quest’opzione determina il tempo di pulizia della cronologia dei cron. In questo caso, ogni 2 ore. - Cronologia totale eseguita con successo: 120
- Cronologia completa fallita: 120