Configuration des tâches cron

WARNING
Toutes les commandes de l’interface de ligne de commande du Magento doivent être exécutées par le propriétaire du système de fichiers.

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)
WARNING
Vous ne pouvez plus exécuter dev/tools/cron.sh, car le script a été supprimé.
INFO
Commerce dépend de la configuration correcte des tâches cron pour de nombreuses fonctions système importantes, y compris l’indexation. Si vous ne le configurez pas correctement, Commerce ne fonctionnera pas comme prévu.

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.

WARNING
  • 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 :

  1. Connectez-vous en tant que propriétaire du système de fichiers ou basculez vers cet emplacement.

  2. Accédez au répertoire d’installation de Commerce.

  3. Saisissez la commande suivante :

    code language-bash
    bin/magento cron:install [--force]
    

Utilisez --force pour réécrire un crontab existant.

INFO
  • 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
INFO
Le fichier 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é.
Toute référence à 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 :

  1. Connectez-vous en tant que ou basculez vers le propriétaire du système de fichiers.

  2. Accédez au répertoire d’installation de Commerce.

  3. Saisissez la commande suivante :

    code language-bash
    bin/magento cron:remove
    
INFO
Cette commande n’a aucun effet sur les tâches cron en dehors des commentaires #~ 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>"]

--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.

INFO
Vous devez exécuter cron deux fois : la première fois pour découvrir des tâches à exécuter et la deuxième fois — pour exécuter les tâches elles-mêmes. La seconde exécution cron doit avoir lieu au ou après l’heure 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 et MISSED 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 forme CRITICAL dans <install_directory>/var/log/exception.log.

  • Les tâches avec l’état MISSED sont consignées en tant que INFO dans le répertoire <install_directory>/var/log/debug.log (mode développeur uniquement).

INFO
Toutes les données cron sont également écrites dans la table 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
Pour afficher les enregistrements dans la table, connectez-vous à la base de données Commerce sur la ligne de commande et saisissez SELECT * from cron_schedule;.
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c