Configuration des tâches cron
Plusieurs fonctionnalités de Commerce nécessitent au moins une tâche cron, qui planifie les activités à venir. Une liste partielle de ces activités est la suivante :
- Règles de prix du catalogue
- Newsletters
- Génération de plans de site Google
- Alertes/notifications client (changement de prix du produit, retour en stock)
- Réindexation
- Ventes privées (Adobe Commerce uniquement)
- Mise à jour automatique des taux de change
- Tous les courriers électroniques Commerce (y compris la confirmation de commande et les transactions)
dev/tools/cron.sh
, car le script a été supprimé.Les systèmes UNIX planifient les tâches à effectuer par des utilisateurs particuliers à l’aide d’un crontab, qui est un fichier contenant des instructions au démon cron qui indique au démon en vigueur d’"exécuter cette commande à cette date". Chaque utilisateur possède son propre crontab et les commandes de n’importe quel crontab donné sont exécutées en tant qu’utilisateur propriétaire.
Pour exécuter cron dans un navigateur web, voir Secure cron.php à exécuter dans un navigateur.
Création ou suppression de l’onglet crontab Commerce
Cette section explique comment créer ou supprimer votre crontab Commerce (c’est-à-dire la configuration des tâches Commerce cron).
crontab est la configuration utilisée pour exécuter des tâches cron.
L’application Commerce utilise des tâches cron qui peuvent s’exécuter avec différentes configurations. La configuration de ligne de commande PHP contrôle la tâche cron générale qui reindexe les indexeurs, génère des courriers électroniques, génère le plan du site, etc.
- Pour éviter tout problème lors de l’installation et de la mise à niveau, nous vous recommandons vivement d’appliquer les mêmes paramètres PHP à la configuration de la ligne de commande PHP et à la configuration du plug-in du serveur web PHP. Pour plus d’informations, voir Paramètres PHP requis.
- Dans un système à plusieurs noeuds, crontab ne peut s’exécuter que sur un seul noeud. Cela s’applique uniquement si vous configurez plusieurs noeuds web pour des raisons de performances ou d’évolutivité.
Création de l’onglet crontab Commerce
À partir de la version 2.2, Commerce crée un crontab pour vous. Nous ajoutons le crontab Commerce à tout crontab configuré pour le propriétaire du système de fichiers Commerce. En d’autres termes, si vous avez déjà configuré des onglets pour d’autres extensions ou applications, nous lui ajoutons le crontab Commerce.
Le crontab Commerce se trouve à l’intérieur des commentaires #~ MAGENTO START
et #~ MAGENTO END
de votre crontab.
Pour créer le sous-onglet Commerce :
-
Connectez-vous en tant que propriétaire du système de fichiers ou basculez vers cet emplacement.
-
Accédez au répertoire d’installation de Commerce.
-
Saisissez la commande suivante :
code language-bash bin/magento cron:install [--force]
Utilisez --force
pour réécrire un crontab existant.
magento cron:install
ne réécrit pas un crontab existant dans les commentaires#~ MAGENTO START
et#~ MAGENTO END
de votre crontab.magento cron:install --force
n’a aucun effet sur les tâches cron en dehors des commentaires Commerce.
Pour afficher crontab, saisissez la commande suivante en tant que propriétaire du système de fichiers :
crontab -l
Voici un exemple :
#~ MAGENTO START c5f9e5ed71cceaabc4d4fd9b3e827a2b
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
#~ MAGENTO END c5f9e5ed71cceaabc4d4fd9b3e827a2b
update/cron.php
a été supprimé dans Commerce 2.4.0. S’il existe dans votre installation, il peut être supprimé en toute sécurité.update/cron.php
et bin/magento setup:cron:run
doit également être supprimée de crontab'Suppression de l’onglet crontab Commerce
Vous ne devez supprimer le crontab Commerce que avant de désinstaller l’application Commerce.
Pour supprimer le crontab Commerce :
-
Connectez-vous en tant que ou basculez vers le propriétaire du système de fichiers.
-
Accédez au répertoire d’installation de Commerce.
-
Saisissez la commande suivante :
code language-bash bin/magento cron:remove
#~ MAGENTO START
et #~ MAGENTO END
de votre crontab.Exécutez cron depuis la ligne de commande
Options de commande :
bin/magento cron:run [--group="<cron group name>"]
où --group
spécifie le groupe cron à exécuter (omettez cette option pour exécuter cron pour tous les groupes)
Pour exécuter la tâche cron d’indexation, saisissez :
bin/magento cron:run --group index
Pour exécuter la tâche cron par défaut, saisissez :
bin/magento cron:run --group default
Pour configurer des tâches et des groupes cron personnalisés, voir Configuration de tâches cron personnalisées et de groupes cron.
scheduled_at
de chaque tâche.Journalisation
Toutes les informations sur la tâche cron
ont été déplacées de system.log
vers un cron.log
distinct.
Par défaut, les informations cron se trouvent à l’adresse <install_directory>/var/log/cron.log
.
Toutes les exceptions des tâches cron sont consignées par \Magento\Cron\Observer\ProcessCronQueueObserver::execute
.
En plus d'être connecté à cron.log
:
-
Les tâches ayant échoué avec les états
ERROR
etMISSED
sont consignées dans le journal<install_directory>/var/log/support_report.log
. -
Les tâches avec un état
ERROR
sont toujours consignées sous la formeCRITICAL
dans<install_directory>/var/log/exception.log
. -
Les tâches avec l’état
MISSED
sont consignées en tant queINFO
dans le répertoire<install_directory>/var/log/debug.log
(mode développeur uniquement).
cron_schedule
de la base de données Commerce. Le tableau fournit un historique des tâches cron, notamment :- Identifiant et code de la tâche
- État
- Date de création
- Date planifiée
- Date d'exécution
- Date de fin
SELECT * from cron_schedule;
.