Come configurare il Cron Job in Magento

4.8/5 (5) 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 […]

Cron Magento

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.

Cron Magento

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
Magento è un marchio registrato di Magento Inc. MagenTiamo è un progetto indipendente non affiliato direttamente dal progetto Magento o chi ne detiene il trademark.