Comment vérifier si Cron fonctionne correctement ?

Les fonctions de Préchargement du cache, Supprimer les ressources CSS inutilisées, purge automatique du cache et d'autres fonctionnalités de WP Rocket dépendent fortement de cron.

Ainsi, que vous utilisiez WP-Cron ou une tâche cron côté serveur, vous devez vous assurer que la fréquence des événements est fiable et suffisamment élevée.

En général, ou pour la plupart des sites web, l'objectif est d'avoir un déclenchement de cron au moins toutes les 5 minutes.

Dans cet article, vous apprendrez comment vérifier l'état de cron, et comment enregistrer les occurrences de cron, manuellement ou à l'aide d'un plugin.

Vérifier WP-Cron avec un plugin

Vous pouvez installer un plugin tiers tel que WP-Cron Status Checker. Si WP-Cron est activé, le widget WP-Cron Status Checker devrait afficher ce qui suit dans votre tableau de bord WordPress :

wp-cron status checker widget

Le widget indiquera si WP-Cron est en mesure de s'exécuter et la dernière fois qu'il a réussi :

WP-Cron is able to run as of: October 5, 2022 3:05 pm
Last time WP Cron succeeded: October 5, 2022 4:05 pm

Vérifier WP-Cron manuellement

Vous pouvez vérifier si WP-Cron a été désactivé en consultant votre fichier wp-config.php et en recherchant cette ligne :

define('DISABLE_WP_CRON', true);

Lorsque la ligne ci-dessus est ajoutée, cela signifie que WP-Cron a été désactivé. Dans la plupart des cas, cela signifie aussi qu'une tâche cron côté serveur a été mise en place à la place.

Vérification des réglages du cron côté serveur

Maintenant, si WP-Cron a été désactivé, et que vous avez une tâche cron côté serveur en cours d'exécution. Veuillez vous assurer que les conditions suivantes sont remplies :

  • La requête doit être faite en direction du fichier wp-cron.php. La commande la plus populaire est la suivante :
  • wget -q -O - http://votredomaine.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1<br>
    	
  • votredomaine.com doit être remplacé par votre propre nom de domaine.
  • La fréquence doit être fixée à un maximum de 5 minutes (une fréquence plus basse peut être encore mieux).

Vous trouverez cet exemple et plus d'informations sur la mise en place de tâches cron pour les installations mono et multisites dans cet article.

Vérifier les occurrences de cron

Si la fréquence de WP-Cron est suffisamment élevée et fiable, alors, en l'absence d'autres problèmes, le préchargement, la génération de CSS Utilisé ou les autres tâches planifiées devraient pouvoir s'exécuter comme prévu.

Vous pouvez enregistrer les événements de WP-Cron en ajoutant le code suivant :

// added to log the wp-cron calls
 
error_log( "\n [" . date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']) . "] Cron: " . print_r(($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'Triggered by the server', true), 3, "cron.log" );
 
 // end of addition

Ajoutez-le en haut du fichier wp-cron.php, après le premier bloc de commentaires et avant la ligne ignore_user_abort( true );

Idéalement, le fichier cron.log résultant sera situé au même niveau que wp-cron.php, et ressemblera à quelque chose comme ceci :

[2022-11-15 20:00:00] Cron: Triggered by the server
[2022-11-15 20:01:00] Cron: WordPress/6.0.2; https://yourdomain.com/
[2022-11-15 20:02:00] Cron: WordPress/6.0.2; https://yourdomain.com/
[2022-11-15 20:05:00] Cron: Triggered by the server
[2022-11-15 20:06:00] Cron: WordPress/6.0.2; https://yourdomain.com/
[2022-11-15 20:07:00] Cron: WordPress/6.0.2; https://yourdomain.com/
[2022-11-15 20:10:00] Cron: Wget/1.14 (linux-gnu)
[2022-11-15 20:13:32] Cron: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
[2022-11-15 20:15:00] Cron: Triggered by the server
[2022-11-15 20:16:00] Cron: WordPress/6.0.2; https://yourdomain.com/
[2022-11-15 20:17:00] Cron: WordPress/6.0.2; https://yourdomain.com/
[2022-11-15 20:20:00] Cron: Triggered by the server

Dans le fichier de log ci-dessus, vous pouvez voir que le cron est déclenché toutes les 5 minutes par le serveur, toutes les quelques minutes par WordPress, et qu'il y a aussi une visite cron générée par le navigateur.

Si votre fichier log montre un résultat similaire, cela signifie que cron s'exécute comme il se doit.

Le cron déclenché par le serveur pourrait être enregistré sous la forme d'une commande,  Cron: Wget/1.14 (linux-gnu), ou comme Cron: Triggered by the server en fonction de la configuration du serveur.

Un cron déclenché par le backend peut être enregistré en tant que  Cron: WordPress/6.0.2; https://yourdomain.com/ , ou comme Cron: Wxfo4jfv6u, en fonction de la configuration.

S'il y a des problèmes avec la fréquence du cron, le préchargement, la génération des CSS utilisés et d'autres tâches seront lentes ou même bloquées.

Enregistrer l'occurrence de cron avec un plugin d'aide

Si vous ne vous sentez pas à l'aise pour effectuer ces changements de code, vous pouvez installer le plugin d'aide suivant.

📥 Télécharger (.zip): WP Rocket | Log Cron Periodicity
Développeurs : Vous pouvez trouver le code de ce plugin sur GitHub.

Ce plugin d'aide créera un fichier journal wpr-cron-periodicity.txt dans le répertoire d'installation de WordPress (ex: public_html) qui enregistrera la périodicité avec laquelle le WP Cron est exécuté.

Pour éviter de créer un énorme fichier log, n'oubliez pas de supprimer ce plugin d'aide une fois que vous avez fini d'enregistrer la fréquence.

Cela a-t-il répondu à votre question ? Merci pour votre retour :) Une erreur est survenue lors de l’envoi de votre retour. Veuillez réessayer plus tard.