Page 1 sur 1

Automatisation d'un script en fonction d'une date sur base d

Posté : 23 oct. 2007, 18:00
par agité
Bonjour,

J'ai un problème sur ma base de donnée, lorsqu'un utilisateur met une date a jour sur une des entrées il faudrait un script qui change automatiquement son etat apres une certaine date, de sorte qu'aucun script ne soit lancé a une heure precise pour l'ensemble de la base.

Faire une sorte de script qui automatiquement verrifie la date actuel et la date d'entrée de la base et perime l'option si la date est dépassée.

Est ce que c'est un script réalisable en PHP ou autre language et de quel maniere ?

Posté : 23 oct. 2007, 18:05
par Truc
Pas compris grand chose mais je pense que la question à plus de sens ici que dans "Modélisation".

Un cron ?

Posté : 24 oct. 2007, 10:01
par agité
Pas compris grand chose mais je pense que la question à plus de sens ici que dans "Modélisation".

Un cron ?
Sur ce lien on propose de configurer son server de manière a lancer un script a un moment donné de la journée.

Ce que je veux faire c'est par exemple faire un champ de type TIMESTAMP ensuite des que ce timestamp est dépassé il change automatiquement le statut sur la base de donnée sans avoir de script a executer.

Par exemple sur ebay lorsqu'un objet est remporté ou pas a la seconde pret il affiche et change son statut sans avoir de script a executer ou pour des sites avec des dates d'arrivée etc ...

Il faudrait trouver une solution sachant que le server distant qui heberge le site peux executer des taches a heures fixes, mais c'est assez important que le statut change aussitôt le temps écoulé, une idée ?

Posté : 24 oct. 2007, 10:16
par Tracker
Salut,

Y'a des solutions sur certain SGBD comme SQLServer où tu peux créer via rquêtes des Jobs, qui seront lancé automatiquement par son plannificateur. Sur MySQL je doute qu'il y ait un équivalent.

Sinon tu peux peut-être paramétrer le cron via php, de façon qu'il lance le traitement aux moments voulus.


Tracker.

Posté : 24 oct. 2007, 10:19
par Ryle
Mysql n'a pas d'horloge interne. Elle ne peut donc pas déclencher d'action toutes les secondes pour vérifier qu'un timestamp est dépassé (et dans un sens c'est tant mieux ! :))

Je ne pense pas que les "statuts" de chaque objet sur ebay soient modifiés chaque seconde dès que l'un d'entre eux arrive à expiration ... surtout quand il suffit d'une simple portion de code qui test si la date d'expériation de l'objet a été atteinte ou pas :
if ($timestampLaMaintenant <= $timestampExpirationObjet)
  // a l'objet
else
  // a pu l'objet
Au pire si tu veux absolument gèrer un statut, tu peux très bien le modifier en exécutant une maj lors du premier après la date d'expiration ...