Cron is een belangrijk hulpprogramma waarmee u met bepaalde regelmatige tussenpozen scripts kunt uitvoeren. Het is ook een belangrijk aspect geworden voor webgebaseerde applicaties. Er zijn veel manieren waarop cron nuttig is voor websites, van het verzenden van reguliere nieuwsbriefmails tot het synchroniseren van de database met systemen van derden. U kunt cron ook gebruiken om de back-endopslag op te schonen om de algehele prestaties van een toepassing te verbeteren.
Magento ondersteunt cron in de kern zelf, net zoals bij verschillende andere hulpprogramma's! Hiermee kunt u geplande taken in de module instellen, zodat ze met regelmatige tussenpozen kunnen worden uitgevoerd. Magento voert alle cron-taken uit met behulp van de bestanden "cron.sh" en "cron.php" in de hoofdmap van de site. U moet er dus voor zorgen dat u de cron op systeemniveau hebt ingesteld om het bestand "cron.sh" met regelmatige tussenpozen uit te voeren, wat uiteindelijk het Magento cron-systeem triggert. En ten slotte verzamelt Magento alle cron-jobs die zich in de modules bevinden en voert ze indien nodig uit in die specifieke cron-run.
Hoewel Magento al veel cron-taken in de kernmodules zelf heeft geleverd, kunt u ook een aangepaste cron-taak in uw module maken. En het maken van een aangepaste module is precies waar we het in de komende paragrafen over zullen hebben.
We zullen een eenvoudige aangepaste module maken met de naam "Customcron". Hier is de lijst met bestanden die nodig zijn voor de gewenste setup:
Eerst moeten we een module-enabler-bestand maken. Maak een bestand "app / etc / modules / Envato_All.xml" en plak de volgende inhoud in dat bestand. We hebben "Envato" gebruikt als onze modulenaamruimte en "Customcron" als onze modulenaam. Het zal standaard onze "Customcron" -module inschakelen.
waar lokaal
Vervolgens moeten we een moduleconfiguratiebestand maken. Maak "app / code / local / Envato / Customcron / etc / config.xml" en plak de volgende inhoud in dat bestand.
1.0 5,10,15,20,25,30,35,40,45,50,55 * * * * customcron / customcron :: customcrontask Envato_Customcron_Model
Het "config.xml" -bestand ziet er vrij eenvoudig uit: het declareert het versienummer en de modelklassen volgens de Magento-conventies. De belangrijke tag is voor ons echter
, die wordt gebruikt om alle vacatures te declareren. Het is een van de "evenementwaarnemers" die door Magento wordt gebruikt om alle cron-taken in de modules te verzamelen.
Verder, onder de
tag, hebben we onze aangepaste crontab-taak opgegeven met behulp van de
label. Het is een soort unieke identificatie voor de cron-taak. Hoewel we in het bovenstaande bestand slechts één taak hebben gemaakt, kunt u meerdere cron-taken instellen onder de
label. Vervolgens, onder
we hebben gedefinieerd
en
labels.
De
tag definieert cron-intervallen in de
tag waarop de taak regelmatig zal worden uitgevoerd. In ons geval wordt de aangepaste cron-taak elke vijf minuten uitgevoerd. Maar wacht, wat zal het elke vijf minuten doen? Dat is precies wat de
tag staat voor! Het verklaart de "Modelmethode" die door Magento wordt aangeroepen tijdens de aangepaste cron-taakrun.
Vervolgens maken we een model "Cronjob.php" bestand. Maak "app / code / local / Envato / Customcron / Model / Customcron.php" met de volgende inhoud.
setToEmail ('[email protected] ') -> setBody (' Hoofdtekst van de aangepaste Cron-taak komt hier ') -> setSubject (' Onderwerp: Aangepaste Cron-taak (elke 5 minuten) '.date ("Ymd H: i: s ")) -> setFromEmail ('[email protected] ') -> setFromName (' Magento Store Admin ') -> setType (' html '); $ Mail-> send ();
Zoals we eerder hebben verklaard, hebben we de methode "customcrontask" gedefinieerd. In deze methode sturen we eenvoudigweg een e-mail met behulp van het Magento email-klasse-hulpprogramma. Maar wat nog belangrijker is, deze methode zal regelmatig worden genoemd, bij elke cron-job, natuurlijk elke vijf minuten.
En ten slotte moet u ervoor zorgen dat u een cronjob-vermelding in uw systeem hebt gemaakt. Voor Linux hoeft u alleen maar de volgende regel toe te voegen aan uw crontab-bestand.
5,10,15,20,25,30,35,40,45,50,55 * * * * / bin / sh /path/to/magento/site/cron.sh
U hoeft alleen "/ path / to / magento / site" te vervangen door het daadwerkelijke pad van de Magento-installatie. En voor Windows kunt u hetzelfde doen met geplande taken. In Windows moet u echter het bestand "/path/to/magento/site/cron.php" gebruiken, want "cron.sh" wordt niet ondersteund.
Het is dus heel eenvoudig om uw aangepaste cron-taken in het Magento cron-systeem aan te sluiten! Dat is het voor vandaag en ik hoop dat je iets nuttigs hebt geleerd in Magento. Deel uw mening met behulp van de onderstaande feed!