Cron Wordpress : Tout savoir sur les tâches cron

Découvrez comment gérer, optimiser et dépanner les tâches cron WordPress pour assurer un bon fonctionnement de votre site.
Image vectorielle représentant des différents appareils tournant sur des Wordpress à l'aide de tâches cron
Table des matières

Les tâches cron sont des actions automatisées, programmées pour se lancer à des intervalles réguliers sur un serveur. Dans le contexte de WordPress, elles permettent d’effectuer diverses opérations de maintenance, de mise à jour ou de sauvegarde sans intervention manuelle de l’utilisateur. Elles sont essentielles pour assurer le bon fonctionnement et la performance d’un site WordPress.

L’objectif de cet article est de vous  fournir une compréhension approfondie des actions cron WordPress, de leur fonctionnement interne, de la manière de les planifier et de les gérer, ainsi que des meilleures pratiques pour optimiser leur utilisation. Nous aborderons également les plugins Wordpress populaires pour la gestion des actions et les solutions de dépannage pour résoudre les problèmes courants.

Approfondissement des tâches cron

Fonctionnement interne

WP-Cron.php

WP-Cron.php est au cœur des tâches de WordPress. Il est responsable des exécutions automatisées et se déclenche automatiquement lorsqu’une page est chargée sur votre site. WP-Cron.php vérifie si des actions sont en attente et les exécute en conséquence. Ce processus est différent du processus traditionnel, qui s’appuie sur l’hôte web pour déclencher les actions.

exemple de fichier wp-cron.php d'un wordpress
Le fichier wp-cron.php est à l’origine de tout le fonctionnement interne des automatisations

Différence entre les tâches cron système et WP-Cron

Les tâches cron système sont gérées par le serveur sur lequel votre site est hébergé et s’exécutent indépendamment de WP. Elles fonctionnent selon un horaire fixe défini par l’administrateur de l’infrastructure web. En revanche, WP-Cron est déclenché par les visiteurs de votre site et dépend donc du trafic pour fonctionner. Cette différence peut entraîner des incohérences dans l’application et des problèmes de performance dans certains cas.

Importance des tâches cron pour WordPress

Maintenance régulière

Les tâches sont cruciales pour assurer la maintenance régulière de votre site. Elles permettent d’effectuer des actions telles que la mise à jour des outils et des thèmes, la sauvegarde de la base de données, la suppression des commentaires indésirables et la vérification des liens brisés. Ces opérations contribuent à maintenir la sécurité, la performance et la fiabilité de votre site.

Automatisation des tâches

Les processus récurrents permettent d’automatiser diverses actions qui, autrement, devraient être effectuées manuellement par l’administrateur du site. Cela simplifie la gestion du site, libère du temps pour se concentrer sur d’autres aspects importants et réduit le risque d’erreurs humaines. Elles sont également essentielles pour les fonctionnalités qui nécessitent une action régulière, comme l’envoi de newsletters ou la mise à jour des statistiques du site.

Planification des tâches cron

Gestion des tâches avec le fichier functions.php

Création d’une tâche cron personnalisée

Pour créer une action cron personnalisée, vous devez d’abord définir une fonction qui contient le code à exécuter lors de l’event. Ensuite, ajoutez ajoutez-la au functions.php de votre thème. Voici un exemple de création d’une action personnalisée :

function mon_action_cron() {
    // Votre code à lancer ici
}

add_action('mon_event_cron', 'mon_action_cron');

Enfin, programmez l’événement en utilisant la fonction wp_schedule_event() :

if (!wp_next_scheduled('mon_event_cron')) {
    wp_schedule_event(time(), 'hourly', 'mon_event_cron');
}

Dans cet exemple, l’action sera exécuté chaque heure.

Suppression d’une tâche cron existante

Pour supprimer une tâche existante, utilisez la fonction wp_unschedule_event() en spécifiant le nom de l’événement et le hook associé. Par exemple :

$timestamp = wp_next_scheduled('mon_event_cron');
wp_unschedule_event($timestamp, 'mon_event_cron');

Utilisation des hooks et des filtres

wp_schedule_event()

La fonction wp_schedule_event() permet de programmer un événement pour qu’il s’exécute à intervalles réguliers. Elle prend trois arguments : le timestamp de la première exécution, la fréquence de récurrence (hourly, twicedaily, daily ou une valeur personnalisée) et le nom de l’action hook à laquelle la fonction est attachée.

wp_unschedule_event()

La fonction wp_unschedule_event() permet de supprimer une action programmée en fournissant le timestamp de l’événement et le nom de l’action hook associée. Elle annule le lancement futur de la tâche cron.

wp_next_scheduled()

La fonction wp_next_scheduled() retourne le timestamp de la prochaine exécution programmée d’un événement, d’après le nom de l’action hook fourni. Elle est utile pour vérifier si un événement est déjà programmé et éviter de programmer des événements en double.

Méthodes alternatives pour gérer les tâches cron

Utilisation de WP-CLI pour gérer WP-Cron

WP-CLI est un outil en ligne de commande pour gérer votre site. Il offre une méthode alternative pour gérer les opérations périodiques en permettant d’entrer des commandes directement depuis le terminal. Voici quelques commandes utiles pour gérer WP-Cron avec WP-CLI :

Afficher la liste des tâches cron planifiées :

wp cron event list

Exécuter une tâche cron spécifique immédiatement :

wp cron event run <hook>

Supprimer une tâche cron planifiée :

wp cron event delete <hook>

Ajout d’une tâche cron à l’aide de cPanel

Si votre site est hébergé sur une infrastructure utilisant cPanel, vous pouvez ajouter une tâche directement depuis l’interface de cPanel. Voici comment procéder :

  1. Connectez-vous à votre compte cPanel.
  2. Recherchez la section « Cron Jobs » et cliquez dessus.
  3. Dans la page « Cron Jobs« , définissez la fréquence en utilisant les menus déroulants.
  4. Dans le champ « Command », entrez la commande pour exécuter WP-Cron (ajustez le chemin si nécessaire) :
    wget -q -O – https://www.example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
  5. Cliquez sur « Add New Cron Job » pour enregistrer la tâche.
Screenshot de la feature de cron job d'un Cpanel
Cpanel offre une gestion des tâches cron intégrée

Configuration d’une tâche cron avec NGINX

Si votre site est hébergé sur une infrastructure utilisant NGINX, vous devrez configurer la tâche en utilisant le processus de cron de votre serveur. Voici comment procéder :

  1. Connectez-vous à votre serveur via SSH.
  2. Ouvrez le fichier de configuration cron en utilisant la commande crontab -e.
  3. Ajoutez une ligne pour lancer WP-Cron à la fréquence souhaitée (ajustez le chemin et la fréquence selon vos besoins) :
    */15 * * * * wget -q -O – https://www.example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
  4. Enregistrez et fermez le fichier pour appliquer la nouvelle tâche cron.

Plugins pour la gestion des tâches cron

WP Crontrol

WP Crontrol est un outil populaire qui permet de gérer facilement les tâches de votre site WordPress directement depuis l’interface d’administration. Il offre les fonctionnalités suivantes :

  • Affichage de la liste des actions planifiées avec leurs fréquences et leurs hooks.
  • Ajout, modification et suppression de actions personnalisées.
  • Exécution manuelle des tâches cron.
  • Ajout, modification et suppression de fréquences de récurrence personnalisées.

Advanced Cron Manager

Advanced Cron Manager est un autre outil de gestion des tâches qui offre une interface utilisateur conviviale et des fonctionnalités avancées. Parmi ses principales fonctionnalités, on trouve :

  • Affichage des tâches cron planifiées avec des informations détaillées sur leur déroulement et leur durée.
  • Ajout, modification et suppression de actions personnalisées.
  • Lancement manuel et suspension temporaire des tâches cron.
  • Gestion des fréquences de récurrence personnalisées.
  • Journalisation des erreurs et des performances pour faciliter le dépannage.

Easycron

Easycron est un gestionnaire de planification en ligne qui simplifie la configuration et la maintenance des actions programmées sur votre site web. 

Screenshot du site web d'Easycron
Easycron offre une gestion en ligne de vos tâches
  • Interface conviviale : Easycron propose une interface claire et facile à utiliser.
  • Planification flexible : Vous pouvez définir des intervalles de récurrence personnalisés pour vos événements planifiés, y compris des intervalles basés sur des minutes, des heures, des jours ou des semaines.
  • Exécution manuelle : Easycron permet d’exécuter manuellement des actions planifiées à tout moment, ce qui est utile pour les tests et le dépannage.
  • Notifications par e-mail : Recevez des notifications par e-mail en cas d’échec ou de réussite d’une action, afin de rester informé et de résoudre rapidement les problèmes potentiels.
  • Journaux et historique : Easycron conserve un historique détaillé des exécutions, y compris les informations sur la durée, les erreurs éventuelles et les résultats. 

Comparaison des fonctionnalités principales

WP Crontrol et Advanced Cron Manager offrent tous deux des fonctionnalités de base similaires pour la gestion, telles que la visualisation, l’ajout, la modification et la suppression de tâches, ainsi que la gestion des fréquences de récurrence. Cependant, Advanced Cron Manager va un peu plus loin en proposant des fonctionnalités avancées comme la journalisation des erreurs et des performances, la suspension temporaire des actions et des informations plus détaillées dans l’ensemble.

Le choix entre ces deux solutions dépendra de vos besoins et de votre niveau d’expertise. Si vous recherchez une solution simple et facile à utiliser, WP Crontrol peut être un bon choix. En revanche, si vous avez besoin d’options de dépannage et de suivi des performances avancées, Advanced Cron Manager sera plus adapté.

Optimisation et dépannage des tâches cron

Passage à un véritable système de cron

Désactivation de WP-Cron

Pour améliorer la fiabilité et la précision de l’exécution des tâches programmées, il peut être préférable de désactiver WP-Cron et de passer à un véritable système de cron. Pour ce faire, ajoutez la ligne suivante dans votre wp-config.php :

define('DISABLE_WP_CRON', true);

Configuration du cron système

Après avoir désactivé WP-Cron, configurez le cron système de votre environnement web pour exécuter les tâches voulues. Utilisez la commande crontab -e pour ouvrir le fichier de configuration et ajoutez une ligne comme celle-ci (ajustez le chemin et la fréquence selon vos besoins) :

*/15 * * * * wget -q -O - https://www.example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Cette configuration exécutera WP-Cron toutes les 15 minutes.

Dépannage des problèmes courants

Tâches bloquées ou en retard

Si certaines tâches ne s’exécutent pas comme prévu, vérifiez d’abord qu’elles sont correctement programmées en utilisant un outil de gestion des tâches cron. Ensuite, identifiez les actions en conflit ou les erreurs de code en examinant les logs et les rapports d’erreur de WP.

Problèmes de performance

Le déroulement simultané de plusieurs tâches peut provoquer des problèmes de performance sur votre site. Pour les résoudre, décalez les actions pour éviter qu’elles ne se chevauchent, réduisez la fréquence des non essentielles ou envisagez de passer à un hébergement plus performant.

Bonnes pratiques de développement

Tester les tâches cron

Il est crucial de tester les tâches cron pour s’assurer qu’elles fonctionnent correctement et n’ont pas d’impact négatif sur les performances de votre site. Utilisez un environnement de développement local ou un environnement de test séparé pour valider leur fonctionnement avant de les déployer sur votre site en production.

Utiliser des logs pour le suivi

La mise en place d’un recueil de logs pour suivre le déroulement des tâches et détecter les erreurs est une bonne pratique. Les logs vous permettront d’identifier rapidement les problèmes et de prendre des mesures correctives. Certains outils de gestion des tâches offrent des fonctionnalités de journalisation intégrées pour faciliter cette tâche.

En conclusion, les jobs cron, importants ou pas ?

Un développeur qui réfléchit à l'importance des tâches cron wordpress
À la lumière de cet article, pensez-vous que les tâches cron soient importantes pour votre site web ?

En conclusion, les tâches cron jouent un rôle essentiel dans le bon fonctionnement et la maintenance d’un site. Elles permettent l’automatisation de processus récurrents et contribuent à la performance globale du site en effectuant des tâches importantes à des moments précis. Leur utilisation optimale est cruciale pour garantir un site Web performant, sécurisé et toujours à jour.

L’importance des automatisations ne peut être sous-estimée, car elles représentent une part importante des opérations de gestion de WordPress. Elles sont impliquées dans des actions telles que la publication planifiée de contenu, la mise à jour automatique des plugins et des thèmes, la sauvegarde régulière des données et bien d’autres. Un site sans automatisations bien gérées peut rapidement devenir obsolète, lent et vulnérable aux attaques.

Dans un monde où les sites sont de plus en plus complexes et les attentes des utilisateurs en matière de performance et de sécurité augmentent, il est crucial de prendre position sur l’importance des actions cron et d’adopter les meilleures pratiques pour les gérer efficacement. Il est important de choisir les bonnes méthodes et les bons outils pour planifier, exécuter et optimiser les actions d’après les besoins spécifiques du site et les contraintes de l’environnement web.

Ingenius, l’expert de qualité

En tant qu’experts Wordpress, nous prenons pleinement conscience de l’importance de ces tâches cron et, en tant qu’experts dans le domaine, nous avons l’expérience et les compétences pour vous aider à optimiser la gestion de votre site et à mettre en œuvre les meilleures pratiques pour assurer une performance optimale de votre WordPress.

Notre équipe de professionnels est prête à analyser en profondeur les tâches importantes de votre site, à identifier les problèmes éventuels et à élaborer des stratégies pour optimiser leur gestion. Nous travaillerons en étroite collaboration avec vous pour déterminer vos besoins spécifiques et vous fournir des solutions sur mesure qui correspondent à votre site et à votre environnement web.

L’agence Wordpress qui conçoit et construit des sites de haute qualité et durables.