Configurer une tâche cron pour déclencher des notifications planifiées

Le module Notification Pack permet de paramétrer des notifications envoyées quelques minutes / heures / jours avant ou après un évènement (voir la documentation).

Paramétrez un délai en minutes avant ou après la réservation

 

Problématiques

WordPress n’est pas capable de “réveiller” le serveur à heure précise pour qu’il envoie une notification.

Quand la notification est-elle donc vraiment envoyée ?

Le seul moyen de “réveiller” le serveur est qu’il reçoive une requête, c’est à dire, une visite.
La notification planifiée ne peut donc être envoyée que lorsque le site est visité.
Peu importe l’utilisateur, la page visitée, etc. il suffit d’une visite.

Quand mon site doit-il être visité ?

Votre site doit être visité dans les délais de votre notification avant / après chaque évènement réservé.
Cependant, l’intervalle minimum entre deux vérifications est de 15 minutes. Cet intervalle minimum permet de ne pas surcharger votre serveur.

Exemple :
Vous avez paramétré une notification pour qu’elle soit envoyée 30 minutes avant un évènement,
Alors, théoriquement, votre site devrait être visité entre 0 et 30 minutes avant l’évènement.
Cependant, il est possible que la dernière vérification ait eu lieu 31 minutes avant l’évènement, votre site doit donc en réalité aussi être visité entre 0 et 16 minutes avant l’évènement.

 

Solutions

Le module Notification Pack offre deux solutions :

  1. Attendre qu’un visiteur visite votre site
  2. Paramétrer un robot (un cron) externe afin qu’il visite votre site toutes les 15 minutes
Déclenchez les notifications planifiées avec ou sans cron

 

Option 1. Attendre que quelqu’un visite votre site

Allez dans Booking Activities > Réglages > onglet Notifications > Paramétrez “Déclenchement des notifications planifiées” sur “À tout chargement de page (aucun cron requis)

Si vous choisissez cette option, vous prenez le pari qu’un visiteur visitera votre site dans les temps avant / après chaque évènement. La fiabilité de cette solution dépend donc de trois paramètres :
– la frequence des visites sur votre site
– l’intervalle entre vos évènements réservés
les délais de vos notifications planifiées (le facteur le plus important)

En effet,
si votre notification planifiée doit être envoyée 1 jour avant un évènement, alors il faudra au maximum une visite par jour par évènement sur votre site. Une seule visite peut tout à fait déclencher plusieurs notifications si elle intervient dans les délais de plusieurs évènements, vous n’aurez donc probablement pas besoin d’autant de visites.

Si vous ne souhaitez pas utiliser de cron externe, il faudra donc paramétrer des délais suffisemment élevés et accepter qu’il pourra y avoir des ratés.

De plus, cette solution a un autre désavantage :
– si l’option “Notifications asynchrones” est sur OFF, la durée de chargement de la page est prolongée pour le visiteur qui déclenchera l’envoi des notifications planifiées
– si elle est sur ON, le visiteur n’attendra pas plus longtemps, mais il faudra deux visites au lieu de une pour envoyer les notifications planifiées

 

Option 2. Paramétrer un cron externe

Allez dans Booking Activities > Réglages > onglet Notifications > Paramétrez “Déclenchement des notifications planifiées” sur “Lors du chargement d’une page spécifique (cron externe requis)

Si les délais de vos notifications sont exigeants (quelques minutes, ou quelques heures), vous devrez paramétrer un robot extérieur à votre site pour qu’il visite l’URL qui vous est fournie toutes les 15 minutes. On appelle cela “une tâche cron”.

Il doit absolument s’agir d’un cron externe, un plugin WordPress rencontrerait les mêmes limitations que Booking Activities.

Quel cron utiliser ?

  • La plupart des hébergeurs permettent de paramétrer des tâches cron. La procédure est différente chez chaque hébergeur. Consulter la documentation de votre hébergeur (ou contactez-le si besoin) afin de savoir comment procéder.
  • Vous pouvez utiliser un service de cron en ligne, tel que easycron.com. À nouveau, il faudra consulter la documentation du service choisi.

Puis-je paramétrer une fréquence moins élevée ?
Vous pouvez tout à fait paramétrer la tâche cron pour être exécutée toutes les 30 minutes par exemple. Assurez-vous simplement que les délais de vos notifications soient un multiple de 30 minutes.

Utilisateurs avancés, vous pouvez modifier l’intervalle minimum avec du code (à ajouter dans le fichier functions.php de votre thème enfant, ou avec un plugin tel que Code Snippets):
add_filter( 'banp_scheduled_notifications_min_delay', function(){ return 900; } ); // 900s = 15mn

Cependant, rappelez-vous qu’une vérification par minute = 1440 vérifications par jour, tandis qu’une vérification par quart d’heure = 360 vérifications par jour seulement. Il est donc recommandé de garder ce nombre aussi élevé que cela est acceptable pour vous.

Laisser un commentaire