Programmer par code une temporisation avant l'exécution d'un script

Petit nouveau ! | 1 Messages

18 oct. 2019, 10:50

Bonjour,

J'ai un script php qui permet d'envoyer un mail à plusieurs destinataires après avoir enregistré des données en BDD MySQL.

Afin de donner aux destinataires un temps de réflexion de 12h avant de poursuive la procédure , je souhaite pouvoir, dans ce fichier, coder l'ouverture d'un autre script 12h plus tard, un peu comme le ferait un Cron qui serait programmé manuellement à partir de l'interface hébergeur.

J'ai bien pensé à event_scheduler(), mais cela ne temporise qu'une action MySQL sur BDD. J'ai également pensé à sleep(), mais je suis contraint de laisser mon navigateur ouvert, et je bloque l'accès au script.

Je cherche donc une procédure qui permettrait, par ligne de code php, d'imiter la mise en place d'une tâche Cron.

Je suis sur un hébergeur mutualisé OVH.

Je vous remercie.

Bien cordialement.

Patrick CLAVIER

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

18 oct. 2019, 14:39

Bonjour,

La solution la plus simple c'est de mettre en place un cron par exemple toutes les heures qui va exécuter un fichier PHP qui va regarder si il y a une action à effectuer (SI action enregistrée il y a 12h ALORS envoyer le mail).
Si ton cron passe toutes les heures, le mail partira 12h à 13h après l'action de l'utilisateur.

Si tu veux plus de finesse, tu peux paramétrer le cron pour qu'il s'exécute toutes les 10 minutes (ou toutes les minutes).


Si tu veux vraiment exécuter l'action exactement à l'heure voulue, tu peux aussi utiliser les API d'OVH pour créer toi même ta tâche planifiée (mais c'est + compliqué à faire) :
https://api.ovh.com/console/#/hosting/w ... /cron#POST
Quand tout le reste a échoué, lisez le mode d'emploi...