Imposta attività pianificate in Magento

Cron è un'importante utility che ti permette di eseguire script a intervalli regolari. È diventato un aspetto importante anche per le applicazioni basate sul web. Esistono molti modi in cui cron è utile per i siti Web, dall'invio di newsletter periodiche alla sincronizzazione del database con sistemi di terze parti. Puoi anche utilizzare cron per ripulire lo spazio di archiviazione back-end per migliorare le prestazioni generali di un'applicazione.

Magento supporta cron nel core stesso, come fa con molte altre utility! Ti consente di impostare attività pianificate nel modulo, in modo che possano essere eseguite a intervalli regolari. Magento esegue tutte le attività di cron usando i file "cron.sh" e "cron.php" che si trovano nella radice del sito. Quindi dovrai assicurarti di aver impostato il cron a livello di sistema per eseguire il file "cron.sh" a intervalli regolari, il che a sua volta attiva il sistema di Magento cron. E infine, Magento raccoglie tutti i processi cron che si trovano nei moduli e li esegue se necessario in quella particolare cron run.

Sebbene Magento abbia già fornito molti processi cron nei moduli core, è possibile creare anche un'attività cron personalizzata nel modulo. E creare un modulo personalizzato è esattamente ciò di cui parleremo nelle prossime sezioni.

Un'occhiata al File Setup

Creeremo un semplice modulo personalizzato denominato "Customcron". Ecco l'elenco dei file richiesti per la configurazione desiderata:

  • app / etc / modules / Envato_All.xml: è un file che viene utilizzato per abilitare il nostro modulo personalizzato.
  • app / code / local / Envato / Customcron / etc / config.xml: è un file di configurazione del modulo in cui dichiareremo il lavoro cron personalizzato.
  • app / code / local / Envato / Customcron / Model / Customcron.php: è un file di modello in cui definiremo la logica del job cron.

Modulo personalizzato: configura i file e le cartelle

Per prima cosa, dobbiamo creare un file di abilitazione del modulo. Crea un file "app / etc / modules / Envato_All.xml" e incolla i seguenti contenuti in quel file. Abbiamo usato "Envato" come spazio dei nomi del nostro modulo e "Customcron" come nome del nostro modulo. Abiliterà il nostro modulo "Customcron" per impostazione predefinita.

    vero Locale   

Successivamente, dobbiamo creare un file di configurazione del modulo. Crea "app / code / local / Envato / Customcron / etc / config.xml" e incolla i seguenti contenuti in quel file.

    1.0       5,10,15,20,25,30,35,40,45,50,55 * * * *   customcron / customcron :: customcrontask        Envato_Customcron_Model    

Il file "config.xml" sembra abbastanza semplice: dichiara il numero di versione e le classi del modello secondo le convenzioni di Magento. Tuttavia, il tag importante per noi è , che viene utilizzato per dichiarare tutti i lavori. È uno degli "osservatori di eventi" che viene utilizzato da Magento per raccogliere tutti i lavori cron nei moduli.

Inoltre, sotto il  tag, abbiamo dichiarato il nostro lavoro crontab personalizzato usando il  etichetta. È una sorta di identificatore univoco per il lavoro cron. Sebbene nel file precedente abbiamo creato solo una singola attività, puoi impostare più processi cron sotto il  etichetta. Avanti, sotto abbiamo definito e tag.

Il tag definisce gli intervalli cron all'interno di tag in cui il lavoro verrà eseguito regolarmente. Nel nostro caso, l'attività cron personalizzata verrà eseguita ogni cinque minuti. Ma aspetta, cosa farà ogni cinque minuti? Questo è esattamente ciò che il tag sta per! Dichiara il "Metodo modello" che verrà chiamato da Magento durante l'esecuzione del lavoro cron personalizzato.

Successivamente, creeremo un file modello "Cronjob.php". Crea "app / code / local / Envato / Customcron / Model / Customcron.php" con i seguenti contenuti.

setToEmail ('[email protected] ') -> setBody (' Body of the Custom Cron Task Goes Here ') -> setSubject (' Oggetto: Custom Cron Task (ogni 5 minuti) '.date ("Ymd H: i: s ")) -> setFromEmail ('[email protected] ') -> setFromName (' Magento Store Admin ') -> setType (' html '); $ Mail-> send (); 

Quindi, come abbiamo dichiarato in precedenza, abbiamo definito il metodo del modello "customcrontask". In questo metodo, stiamo semplicemente inviando un'e-mail usando l'utilità di classe e-mail Magento. Ma ancora più importante, questo metodo verrà chiamato regolarmente, ad ogni cron job, ovviamente ogni cinque minuti.

E infine, dovresti assicurarti di aver creato una voce cronjob nel tuo sistema. Per Linux, è sufficiente aggiungere la seguente riga al file crontab.

5,10,15,20,25,30,35,40,45,50,55 * * * * / bin / sh /path/to/magento/site/cron.sh

Hai solo bisogno di sostituire "/ path / to / magento / site" con il percorso effettivo dell'installazione di Magento. E per Windows, puoi fare lo stesso utilizzando le attività pianificate. Tuttavia, in Windows, è necessario utilizzare il file "/path/to/magento/site/cron.php", poiché "cron.sh" non è supportato.

Quindi è davvero semplice collegare i tuoi cron job personalizzati nel sistema cron di Magento! È tutto per oggi, e spero che tu abbia imparato qualcosa di utile in Magento. Condividi i tuoi pensieri usando il feed qui sotto!