Si un utilisateur visite un site et que sa visite déclenche un travail cron assez intensif, la vitesse de chargement des pages sera plus lente pour lui, n'est-ce pas? Si j'ai bien compris, la page n'attend pas l'exécution du travail cron avant le chargement, mais comme le travail cron s'exécute en parallèle, il se peut que la page se charge plus lentement car le serveur est occupé, non?
Réponse courte - Nope . Toute demande de page initialise la file d'attente planifiée. C'est juste une demande d'initialisation. La demande Wp-cron est une demande autonome.
en sollicitant l'URL
/somepage
, il vous suffit d'initialiser la demande à/wp-cron.php
Cependant - Si l’événement cron ne fonctionne pas vraiment bien (il a 1000 requêtes de base de données, par exemple ou demande une ressource très longue à répondre), ou les deux, ou la planification d’un événement cron pour chaque demande ... Autre requête http, il consommera des ressources, les performances du processeur, de la mémoire, etc ... s'il mange suffisamment de ressources, votre page deviendra plus lente.
La réponse courte est en fait yes , dans la plupart des cas.
Tout d'abord, dans la plupart des configurations, le lancement d'un travail cron entraîne un délai d'une seconde au chargement de la page, car il s'effectue via une requête HTTP en boucle avec un délai d'une seconde - voir https://wordpress.org/support/topic/save-a-full-second-on-cron-execution/ .
Deuxièmement, le travail généré va maintenant entrer en compétition avec le chargement de pages pour l'accès à la base de données (ainsi que d'autres ressources). Plusieurs processus peuvent lire la base de données simultanément; Cependant, lorsqu'un processus écrit dans la base de données, il est verrouillé par défaut pour empêcher tout accès en écriture simultané ou en lecture par un autre processus - voir https://stackoverflow.com/questions/1005206/does -sqlite-lock-the-database-file-read-file # answer-1005218 . L'impact de cela dépend de la complexité des mises à jour de la base de données du travail cron, de la durée pendant laquelle la base de données est verrouillée et peut être insignifiant. Bien sûr, il serait également problématique que le travail cron soit exécuté lorsqu'une page est demandée, mais que des travaux cron générés au chargement de la page garanties _ affectent au moins le chargement de cette page.
Si votre serveur/hébergement le permet, il est recommandé de configurer un travail périodique planifié pour s'exécuter toutes les quelques heures, à l'aide de la commande
php -q /path/to/wp-cron.php
et désactivez la création de Cron au chargement de la page avec l'entrée suivante dans wp-config.php
:
define('DISABLE_WP_CRON', true);