Taches cron et traitement en arriere-plan
PrimoCRM effectue toutes ses tâches lourdes en arrière-plan : l’envoi des campagnes, les séquences de diffusion et les étapes d’automatisation sont traités par des processus planifiés, jamais lors du chargement d’une page. Ces processus s’exécutent via le cron WordPress, ce qui signifie qu’un cron fiable est essentiel pour garantir l’envoi de vos e-mails en temps voulu. Cette page explique son fonctionnement et la manière de le fiabiliser.
Comment PrimoCRM utilise le cron
Section intitulée « Comment PrimoCRM utilise le cron »PrimoCRM enregistre deux planifications personnalisées et un petit ensemble de processus en arrière-plan :
| Processus | Exécution | Tâche |
|---|---|---|
| Envoi des e-mails de campagne | À la demande (uniquement lorsqu’une campagne contient des e-mails en attente) | Envoie une campagne par lots régulés |
| Traitement des séquences | Chaque minute | Envoie les e-mails de séquence dus |
| Traitement des automatisations | Chaque minute | Fait avancer les contacts dans les étapes d’automatisation |
| Vérification de la santé de la file d’attente | Toutes les 5 minutes | Récupère les e-mails bloqués et relance les campagnes en pause |
Chaque processus prend en charge un lot de travail, respecte un budget de temps pour ne jamais dépasser les limites de votre hébergeur, puis se replanifie. La vérification de santé de 5 minutes constitue un filet de sécurité : si un envoi se bloque, elle le relance dès le cycle suivant.
Pourquoi un cron fiable est important
Section intitulée « Pourquoi un cron fiable est important »WordPress intègre un pseudo-cron qui ne se déclenche que lorsque quelqu’un visite le site. Sur un site très fréquenté, cela pose rarement problème. Sur un site à faible trafic, des heures peuvent s’écouler sans aucune visite, ce qui retarde les envois planifiés jusqu’à l’arrivée d’un prochain visiteur. Le symptôme visible est une campagne bloquée sur “envoi en cours” qui stagne ou n’envoie rien.
La solution consiste à remplacer le pseudo-cron déclenché par les visiteurs par un vrai cron qui s’exécute à un rythme fixe, idéalement chaque minute.
Vérifier si le cron fonctionne
Section intitulée « Vérifier si le cron fonctionne »- Ouvrez PrimoCRM, allez dans Réglages, puis recherchez l’état du système ou du cron, qui indique si les processus sont planifiés et à quel moment ils ont été exécutés pour la dernière fois.
- Ou installez un plugin d’aide tel que WP Crontrol et vérifiez que les événements
primocrm_process_sequences,primocrm_process_automationsetprimocrm_queue_health_checksont bien présents et s’exécutent.
Si une campagne est bloquée et que votre site reçoit peu de trafic, le cron en est presque toujours la cause.
Configurer un vrai cron (recommandé)
Section intitulée « Configurer un vrai cron (recommandé) »Deux étapes : désactiver le pseudo-cron de WordPress, puis ajouter un vrai cron qui s’exécute chaque minute.
1. Désactiver le pseudo-cron
Section intitulée « 1. Désactiver le pseudo-cron »Ajoutez cette ligne dans le fichier wp-config.php, juste au-dessus de la ligne “C’est tout, arrêtez d’éditer !” :
define( 'DISABLE_WP_CRON', true );Cela empêche WordPress de déclencher le cron lors du chargement des pages, faisant ainsi de votre vrai cron l’unique déclencheur.
2. Ajouter un vrai cron chaque minute
Section intitulée « 2. Ajouter un vrai cron chaque minute »Choisissez la méthode qui correspond à votre hébergement.
WP-CLI (idéal si vous avez un accès SSH) :
* * * * * cd /path/to/wordpress && wp cron event run --due-now >/dev/null 2>&1Binaire PHP (également très bien avec un accès SSH) :
* * * * * php /path/to/wordpress/wp-cron.php >/dev/null 2>&1cPanel : ouvrez Tâches Cron, définissez la planification sur chaque minute (* * * * *), et utilisez l’une des commandes ci-dessus avec le chemin d’accès complet vers votre site.
Aucun accès SSH (hébergement mutualisé) ? Utilisez un service de cron distant gratuit tel que cron-job.org pour appeler l’URL de votre cron via HTTP chaque minute :
https://yoursite.com/wp-cron.php?doing_wp_cronInscrivez-vous sur le service, ajoutez cette URL, définissez l’intervalle sur 1 minute et enregistrez. Cela permet d’exécuter le cron WordPress de l’extérieur à un rythme fixe.
Dépannage
Section intitulée « Dépannage »- Une campagne est bloquée sur “envoi en cours”. C’est presque toujours lié au cron. Vérifiez qu’un vrai cron s’exécute chaque minute et que la constante
DISABLE_WP_CRONest bien définie. La vérification de santé de 5 minutes reprendra l’envoi dès que le cron s’exécutera. - Les automatisations ou les séquences s’exécutent en retard. Votre intervalle de cron est trop long ou le pseudo-cron attend des visiteurs. Passez à un vrai cron configuré à la minute.
- Rien ne s’envoie du tout. Indépendamment du cron, vérifiez que votre méthode d’envoi est configurée et qu’un e-mail de test arrive bien à destination. Le cron contrôle le moment de l’exécution, tandis que le service de messagerie contrôle l’effectivité de la livraison.
- Limites de processeur de l’hébergement mutualisé. Les processus disposent d’un budget de temps et se mettent en pause en cas de forte charge, ce qui les rend sûrs pour les hébergements mutualisés. Si votre hébergeur se plaint tout de même, un intervalle légèrement plus long (2 à 5 minutes) réduira la fréquence au détriment de la réactivité.
Consultez également la section Prérequis pour les exigences PHP et serveur, ainsi que Envoi et délivrabilité pour ce qui concerne le service de messagerie.