Configuration des tâches cron
Plusieurs fonctionnalités de Commerce nécessitent au moins une tâche cron, qui planifie les activités à venir. Voici une liste partielle de ces activités :
- Règles de prix de catalogue
- Newsletters
- Génération de plans de site Google
- Alertes/notifications du client (modification du prix du produit, retour du produit en stock)
- Réindexation
- Ventes privées (Adobe Commerce uniquement)
- Mise à jour automatique des taux de change
- Tous les e-mails Commerce (y compris la confirmation de commande et les messages transactionnels)
dev/tools/cron.sh
car le script a été supprimé.Les systèmes UNIX planifient les tâches que doivent effectuer des utilisateurs spécifiques à l'aide d'un fichier crontab, qui contient des instructions destinées au démon cron indiquant au démon en vigueur d'« exécuter cette commande à ce moment-là à cette date ». Chaque utilisateur possède son propre crontab, et les commandes d'un crontab donné sont exécutées en tant qu'utilisateur propriétaire.
Pour exécuter cron dans un navigateur Web, consultez Sécuriser cron.php pour l'exécuter dans un navigateur.
Création ou suppression du crontab Commerce
Cette section explique comment créer ou supprimer votre crontab Commerce (c’est-à-dire la configuration des tâches cron Commerce).
Le crontab est la configuration utilisée pour exécuter les 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 réindexe les indexeurs, génère des e-mails, 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 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 nœuds, crontab ne peut s’exécuter que sur un seul nœud. Cela s’applique uniquement si vous configurez plusieurs nœuds web pour des raisons liées aux performances ou à l’évolutivité.
Création du 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 configurez déjà crontabs pour d’autres extensions ou applications, nous y ajoutons le crontab Commerce.
Le crontab Commerce se trouve dans #~ MAGENTO START
et #~ MAGENTO END
des commentaires dans votre crontab.
Pour créer le crontab Commerce :
-
Connectez-vous en tant que propriétaire du système de fichiers ou passez-y.
-
Modifiez votre répertoire d’installation 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#~ MAGENTO START
et#~ MAGENTO END
des commentaires dans votre crontab.magento cron:install --force
n’a aucun effet sur les tâches cron en dehors des commentaires de 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. Si ce fichier existe sur 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.Supprimez le crontab Commerce.
Supprimez le crontab Commerce uniquement avant de désinstaller l’application Commerce.
Pour supprimer le crontab Commerce :
-
Connectez-vous en tant que ou passez au 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
les commentaires dans 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 et de groupes cron personnalisés.
scheduled_at
ou après pour chaque tâche.Journalisation
Toutes cron
informations sur le travail ont été déplacées de system.log
vers une cron.log
distincte.
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 statuts
ERROR
etMISSED
sont consignées dans le<install_directory>/var/log/support_report.log
. -
Les tâches avec un statut
ERROR
sont toujours enregistrées commeCRITICAL
dans<install_directory>/var/log/exception.log
. -
Les tâches avec un statut
MISSED
sont consignées commeINFO
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 du traitement
- Statut
- Date de création
- Date planifiée
- Date d’exécution
- Date de fin
SELECT * from cron_schedule;
.