Configurer des tâches planifiées dans Magento

Cron est un utilitaire important qui vous permet d'exécuter des scripts à certains intervalles réguliers. C'est également devenu un aspect important pour les applications Web. Cron est utile pour les sites Web de nombreuses manières, allant de l'envoi de courriers électroniques réguliers à la synchronisation de la base de données avec des systèmes tiers. Vous pouvez également utiliser cron pour nettoyer le stockage final afin d’améliorer les performances globales d’une application..

Magento supporte cron dans le noyau lui-même, comme avec plusieurs autres utilitaires! Il vous permet de configurer des tâches planifiées dans le module, afin qu'elles puissent être exécutées à intervalles réguliers. Magento exécute toutes les tâches cron à l'aide des fichiers "cron.sh" et "cron.php" situés à la racine du site. Vous devez donc vous assurer que vous avez configuré le système cron au niveau du système pour exécuter le fichier "cron.sh" à intervalles réguliers, ce qui déclenche le système de cron de Magento. Enfin, Magento regroupe toutes les tâches cron situées dans les modules et les exécute si nécessaire dans cette exécution cron particulière..

Bien que Magento ait déjà fourni de nombreuses tâches cron dans les modules principaux, vous pouvez également créer une tâche cron personnalisée dans votre module. Et créer un module personnalisé est exactement ce dont nous parlerons dans les prochaines sections.

Un coup d'œil sur la configuration du fichier

Nous allons créer un module personnalisé simple nommé "Customcron". Voici la liste des fichiers requis pour la configuration souhaitée:

  • app / etc / modules / Envato_All.xml: c'est un fichier utilisé pour activer notre module personnalisé.
  • app / code / local / Envato / Customcron / etc / config.xml: Il s'agit d'un fichier de configuration de module dans lequel nous allons déclarer le travail cron personnalisé..
  • app / code / local / Envato / Customcron / Model / Customcron.php: Il s'agit d'un fichier de modèle dans lequel nous définirons la logique du travail cron..

Module personnalisé: Configurer les fichiers et les dossiers

Tout d'abord, nous devons créer un fichier d'activation de module. Créez un fichier "app / etc / modules / Envato_All.xml" et collez le contenu suivant dans ce fichier. Nous avons utilisé "Envato" comme espace de noms de module et "Customcron" comme nom de module. Cela activera notre module "Customcron" par défaut.

    vrai local   

Ensuite, nous devons créer un fichier de configuration de module. Créez "app / code / local / Envato / Customcron / etc / config.xml" et collez le contenu suivant dans ce fichier.

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

Le fichier "config.xml" semble assez simple - il déclare le numéro de version et les classes de modèle conformément aux conventions de Magento. Cependant, la balise importante pour nous est , qui est utilisé pour déclarer tous les travaux. C'est l'un des "observateurs d'événements" qui est utilisé par Magento pour rassembler toutes les tâches cron des modules..

En outre, sous la  tag, nous avons déclaré notre travail crontab personnalisé à l'aide du  étiquette. C'est une sorte d'identifiant unique pour le travail cron. Bien que dans le fichier ci-dessus, nous n’ayons créé qu’une seule tâche, vous pouvez configurer plusieurs tâches cron sous le programme  étiquette. Ensuite, sous nous avons défini et Mots clés.

le balise définit les intervalles de cron à l'intérieur du balise à laquelle le travail sera exécuté régulièrement. Dans notre cas, la tâche périodique personnalisée s'exécutera toutes les cinq minutes. Mais attendez, que fera-t-il toutes les cinq minutes? C'est exactement ce que le tag est synonyme de! Il déclare la "méthode modèle" qui sera appelée par Magento lors de l'exécution du travail cron personnalisé..

Ensuite, nous allons créer un fichier de modèle "Cronjob.php". Créez "app / code / local / Envato / Customcron / Model / Customcron.php" avec le contenu suivant.

setToEmail ('[email protected] ') -> setBody (' Le corps de la tâche personnalisée personnalisée va ici ') -> setSubject (' Sujet: tâche personnalisée personnalisée (toutes les 5 minutes) '' .date ("Ymd H: i: s ")) -> setFromEmail ('[email protected] ') -> setFromName (' Admin du magasin Magento ') -> setType (' html '); $ mail-> send (); 

Ainsi, comme nous l'avons déclaré précédemment, nous avons défini la méthode du modèle "customcrontask". Cette méthode consiste simplement à envoyer un courrier électronique à l'aide de l'utilitaire de classe de messagerie Magento. Mais plus important encore, cette méthode sera appelée régulièrement, à chaque exécution du travail cron, bien sûr toutes les cinq minutes..

Et enfin, vous devez vous assurer que vous avez créé une entrée cronjob dans votre système. Pour Linux, vous devez simplement ajouter la ligne suivante à votre fichier crontab.

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

Il vous suffit de remplacer "/ path / to / magento / site" par le chemin réel de l'installation de Magento. Et pour Windows, vous pouvez faire la même chose en utilisant des tâches planifiées. Cependant, sous Windows, vous devez utiliser le fichier "/path/to/magento/site/cron.php", car "cron.sh" n'est pas pris en charge..

Il est donc très simple de connecter vos tâches cron personnalisées au système crento de Magento! C'est tout pour aujourd'hui et j'espère que vous avez appris quelque chose d'utile dans Magento. Partagez vos pensées en utilisant le flux ci-dessous!