Configurați sarcinile programate în Magento

Cron este un utilitar important care vă permite să executați scripturi la anumite intervale regulate. A devenit un aspect important și pentru aplicațiile bazate pe web. Există o mulțime de moduri în care cronul este util pentru site-uri web, de la trimiterea de mesaje periodice de buletine informative la sincronizarea bazei de date cu sistemele terților. De asemenea, puteți utiliza cron pentru a curăța spațiul de stocare din spate pentru a îmbunătăți performanța generală a unei aplicații.

Magento suportă cron în nucleul în sine, la fel ca și în cazul altor utilități! Acesta vă permite să setați sarcini programate în modul, astfel încât acestea să poată rula la intervale regulate. Magento execută toate sarcinile cron utilizând fișierele "cron.sh" și "cron.php" situate în rădăcina site-ului. Deci, va trebui să vă asigurați că ați configurat cron-ul la nivel de sistem pentru a rula fișierul "cron.sh" la intervale regulate, ceea ce declanșează în cele din urmă sistemul Magento cron. În cele din urmă, Magento adună toate cron-urile din module și le execută dacă este necesar în acel cron.

Deși Magento a oferit deja multe locuri de muncă cron în modulele de bază, puteți crea o sarcină cron personalizată și în modulul dvs. Și crearea unui modul personalizat este exact ceea ce vom vorbi în secțiunile viitoare.

O privire la configurarea fișierelor

Vom crea un modul personalizat simplu numit "Customcron". Iată lista fișierelor necesare pentru configurarea dorită:

  • app / etc / modules / Envato_All.xml: Este un fișier care este folosit pentru a permite modulul nostru personalizat.
  • app / code / local / Envato / Customcron / etc / config.xml: Este un fișier de configurare a modulului în care vom declara lucrarea personalizată cron.
  • app / code / local / Envato / Customcron / Model / Customcron.php: Este un fișier model în care vom defini logica de lucru cron.

Modul personalizat: configurați fișierele și folderele

În primul rând, trebuie să creăm un fișier de activator de module. Creați un fișier "app / etc / modules / Envato_All.xml" și lipiți următorul conținut în acel fișier. Am folosit "Envato" ca spațiu de nume al modulelor noastre și "Customcron" ca numele modulului nostru. Acesta va permite modulul "Customcron" în mod implicit.

    Adevărat local   

Apoi, trebuie să creați un fișier de configurare a modulului. Creați "app / code / local / Envato / Customcron / etc / config.xml" și lipiți conținutul următor în acel fișier.

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

Fișierul "config.xml" pare destul de simplu - acesta declară numărul de versiuni și clase de modele conform convențiilor Magento. Cu toate acestea, eticheta importantă pentru noi este , care este folosit pentru a declara toate lucrările. Este unul dintre "observatorii evenimentului" care este folosit de Magento pentru a aduna toate cron-urile din module.

Mai mult, în cadrul  tag, am declarat crontab jobul nostru personalizat folosind  etichetă. Este un fel de identificator unic pentru lucrarea cron. Deși în fișierul de mai sus am creat doar o singură sarcină, puteți seta mai multe lucrări cron sub  etichetă. Apoi, sub am definit și Etichete.

tag definește intervalele cron în interiorul eticheta la care lucrarea se va desfășura în mod regulat. În cazul nostru, sarcina personalizată cron se va executa la fiecare cinci minute. Dar așteptați, ce va face la fiecare cinci minute? Exact asta este eticheta vine pentru! Acesta declară "Metoda model" care va fi apelată de Magento în timpul executării cron personalizate.

Apoi, vom crea un model "Cronjob.php". Creați "app / code / local / Envato / Customcron / Model / Customcron.php" cu următorul conținut.

setToEmail ('[email protected] ') -> setBody ("Corpul Custom Cron Task Goes Here") -> setSubject ("Subject: Custom Cron Task (every 5 minutes) s ")) -> setFromEmail ('[email protected] ') -> setFromName (" Magento Store Admin ") -> setType (" html "); $ Mail-> trimite (); 

Așa cum am declarat mai devreme, am definit metoda modelului "customcrontask". În această metodă, pur și simplu trimitem un e-mail utilizând utilitarul pentru clasa de e-mail Magento. Dar, mai important, această metodă va fi numită în mod regulat, la fiecare activitate de lucru cron, desigur, la fiecare cinci minute.

În sfârșit, ar trebui să vă asigurați că ați creat o intrare cronjob în sistemul dvs. Pentru Linux, pur și simplu trebuie să adăugați următoarea linie în fișierul dvs. crontab.

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

Trebuie doar să înlocuiți "/ path / to / magento / site" cu calea reală a instalării Magento. Și pentru Windows, puteți face același lucru utilizând sarcinile planificate. Cu toate acestea, în Windows, trebuie să utilizați fișierul "/path/to/magento/site/cron.php", deoarece "cron.sh" nu este acceptat.

Deci, este foarte simplu să vă conectați cron-urile personalizate în sistemul Magento cron! Asta e pentru ziua de azi și sper că ați învățat ceva util în Magento. Împărtășiți-vă gândurile folosind feed-ul de mai jos!

Cod