Cron är ett viktigt verktyg som låter dig utföra skript med vissa regelbundna intervaller. Det har blivit en viktig aspekt för webbaserade applikationer. Det finns många sätt på vilka cron är användbar för webbplatser, från att skicka vanligt nyhetsbrev för att synkronisera databasen med tredjepartssystem. Du kan också använda cron för att städa upp lagringsutrymmet för bakåt för att förbättra det totala resultatet för en applikation.
Magento stöder cron i själva kärnan, som det gör med flera andra verktyg! Det låter dig ställa in schemalagda uppgifter i modulen så att de kan köras med jämna mellanrum. Magento kör alla cron-uppgifter med hjälp av "cron.sh" och "cron.php" -filerna som finns i rotan på webbplatsen. Så du måste se till att du har konfigurerat systemnivå cron för att köra filen "cron.sh" med jämna mellanrum, vilket så småningom utlöser Magento cron-systemet. Och slutligen samlar Magento alla cronjobb som finns i modulerna, och kör dem om det behövs i den specifika cron-körningen.
Även om Magento redan har tillhandahållit massor av cron-jobb i själva kärnmodulerna, kan du skapa en anpassad cron-uppgift i din modul också. Och att skapa en anpassad modul är exakt vad vi ska prata om i de kommande avsnitten.
Vi skapar en enkel anpassad modul med namnet "Customcron". Här är listan över filer som krävs för önskad inställning:
Först måste vi skapa en modul enabler fil. Skapa en fil "app / etc / modules / Envato_All.xml" och klistra in följande innehåll i den filen. Vi har använt "Envato" som vår modul namespace och "Customcron" som vårt modulnamn. Det aktiverar vår "Customcron" -modul som standard.
Sann lokal
Därefter måste vi skapa en modulkonfigurationsfil. Skapa "app / code / local / Envato / Customcron / etc / config.xml" och klistra in följande innehåll i den filen.
1,0 5,10,15,20,25,30,35,40,45,50,55 * * * * customcron / customcron :: customcrontask Envato_Customcron_Model
Filen "config.xml" ser ganska enkelt ut - det förklarar versionsnummer och modellklasser enligt Magento-konventionerna. Men den viktiga etiketten för oss är
, som används för att deklarera alla jobb. Det är en av de "händelseobservatörer" som används av Magento för att samla alla cronjobb i modulerna.
Vidare, under
tagg, vi har förklarat vårt anpassade crontabjobb med hjälp av
märka. Det är en slags unik identifierare för cronjobbet. Även om vi i ovanstående fil bara har skapat en enda uppgift, kan du ställa in flera cronjobb under
märka. Nästa, under
vi har definierat
och
taggar.
De
taggen definierar cronintervaller inuti
tagg där jobbet kommer att köras regelbundet. I vårt fall kommer den anpassade cron-uppgiften att köras var femte minut. Men vänta, vad ska det göra vart femte minut? Det är precis vad
taggar står för! Det förklarar "Modellmetoden" som kommer att kallas av Magento under den anpassade cron-jobbet.
Därefter skapar vi en modell "Cronjob.php" -fil. Skapa "app / code / local / Envato / Customcron / Model / Customcron.php" med följande innehåll.
setToEmail ('[email protected] ') -> setBody (' Body of Custom Cron Task Goes Here ') -> setSubject (' Ämne: Custom Cron Task (var 5: e minut) '.date ("Ymd H: i: s ")) -> setFromEmail ('[email protected] ') -> setFromName (' Magento Store Admin ') -> setType (' html '); $ Post-> skicka ();
Såsom vi förklarade tidigare har vi definierat "customcrontask" -modellmetoden. I den här metoden skickar vi enkelt ett e-postmeddelande med hjälp av Magento-e-postklassverktyget. Men ännu viktigare, denna metod kommer att kallas regelbundet, vid varje cron-jobb, naturligtvis var femte minut.
Och äntligen bör du se till att du har skapat en cronjob-post i ditt system. För Linux behöver du helt enkelt lägga till följande rad i din crontab-fil.
5,10,15,20,25,30,35,40,45,50,55 * * * * / bin / sh /path/to/magento/site/cron.sh
Du behöver bara byta "/ path / to / magento / site" med den faktiska sökvägen för Magento-installationen. Och för Windows kan du göra detsamma genom att använda planerade uppgifter. Men i Windows måste du använda filen "/path/to/magento/site/cron.php", eftersom "cron.sh" inte stöds.
Så det är väldigt enkelt att ansluta dina anpassade cron jobb till Magento cron-systemet! Det är det för idag, och jag hoppas att du har lärt dig något användbart i Magento. Dela dina tankar med hjälp av flödet nedan!