Hébergements Web - Application automatisée php
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

Application automatisée php

Von
LucasM
Erstellungsdatum 2018-09-04 10:52:25 (edited on 2024-09-04 12:30:40) in Hébergements Web

Bonjour à tous,

J'ai développé une application tout en php et pour mes utilisateurs j'ai besoin de faire tourner un script en boucle. J'ai un Mutualisé perf 2 et un VPS (le plus petit, où je "m'auto-forme") chez OVH.

Je rencontre un problème, je souhaite effectuer des actions automatisées à des moments précis suivant ce qui est stocké dans ma base de données.

Je m'explique, mon application reçoit des données et en fonction de ces données reçues ainsi que des scénarios prévus par mes utilisateurs, des actions doivent être effectuées ou non. Y compris à des heures précises.
Par exemple, si un utilisateur créer un scénario qui doit se déclencher à 20h32 chaque jour, je ne parviens pas à automatiser cette action de manière "simple" et automatisée.

Pourriez-vous m'aider svp ? Merci d'avance,


11 Antworten ( Latest reply on 2018-09-04 18:50:15 Von
kyodev
)

tu veux faire cela sur le vps?
il faut compléter la crontab (`/etc/crontab`)?
mais les détails peuvent différer selon la distribution.

pour le mutu, je passe

Salut kyodev, merci pour ta réponse.

J'aurai préféré sur le Mutu car tout est dessus. J'ai pris un VPS pour apprendre comment me servir d'un serveur dédié, apache est installé dessus.
Mais pourquoi pas, admettons que..

Comment du PHP j'insère de nouvelles taches cron ?

Sur les mutus tu ne peux pas préciser l'heure des crons à la minute près, mais seulement à l'heure. Les minutes sont générés aléatoirement.

Salut Daniel60,
oui ça j'avais remarqué ;) ! D'où mes questionnements sur les solutions alternatives ... :)
Pour les besoins de mes utilisateurs je cherche donc à déclencher "à la minute près"...

Puis même à l'heure près, je ne sais pas s'il est possible en PHP d'indiquer au serveur d'ajouter une nouvelle tache cron ?

la partie automation :)

Hum... pourrais-tu m'en dire un petit peu plus sur "la partie automation :)" s'il te plait ? :)


Puis même à l'heure près


Un cron sur le VPS (ou sur un Raspberry Pi chez toi) qui va appeler une page web spécifique de ton hébergement, comme ça tu as l'exécution à la seconde près sur le mutualisé.
N'oublie pas de vérifier qu'un client NTP soit installé sur ta machine VPS ou RPi pour avoir l'heure exacte.

Merci pour ta réponse. J'ai effectivement déjà pensé à cette solution. Le problème qui s'ajoute à ça c'est que les utilisateurs sont enregistrés sur le mutualisé et toutes les données associées, y compris leurs scénarios (qui stock les heures de déclenchement).
Appeler une page depuis le VPS pourquoi pas, mais sur quelles bases ? Il faudrait que le VPS récupère toutes les données des scénarios...
Je n'ai pas encore les connaissances requises pour tout mettre sur le VPS qui pourrait me simplifier la tâche étant donné que j'apprends encore à me servir des taches de bases.

Solution bourrin: appeler une page toutes les minutes. Lors de chaque appel, vérifier s'il y a quelque chose à exécuter et mettre un marqueur pour éviter de lancer 2x à la même minute (parce que ça arrivera bien que le cron s'exécute à la minute:00 et à la même minute:59 vu depuis l'autre bout)
Dans l'appel cron il faudrait passer l'heure minute seconde du VPS ou du RPi car tu n'as pas la garantie que les serveurs mutu soient tous à l'heure exacte et identique.

le vps pourrait seulement récuperer une ligne crontable (avec page à appeler)
inserer ou supprimer dans crontab user doit être accessible en php sur le vps (user www-data)