Appel d'un fonction à telle date

Résolu
picolo220 Messages postés 18 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 8 avril 2017 - 3 déc. 2008 à 15:24
picolo220 Messages postés 18 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 8 avril 2017 - 5 déc. 2008 à 18:00
Bonjour, je suis actuellement en train de coder une sorte de site de vente aux enchères, mais je me heurte au problème suivant.
Comment changer automatiquement le statu d'un objet, une fois arrivé à la fin du temps de vente.
Je m'explique, quand on met un objet en vente, on choisi le temps pour la vente, par exemple 1 heure.
Je souhaiterai que au bout d'une heure, la base de données soit modifiée.
Je me suis renseigné sur les processus ou autre callback, mais je ne trouve pas d'information satisfaisante(pour moi tout du moins );
Pour utiliser les processus, j'ai cru comprendre que l'on devait recompiler php avec l'option : 
--enable-pcntl.
mais cela n'est pas possible dans un environnement non Unix.
Je suis près à faire ça sous Linux mais n'y a t-il pas une autre méthode toute bète...?

Voila merci d'avance pour votre aide!

10 réponses

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
3 déc. 2008 à 15:51
Linux => tâche CRON
Windows => scheduller

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
3 déc. 2008 à 19:22
picolo220, chez ovh si tu prends un serveur dedie, tu peux y installer linux et installer cron.
3
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
4 déc. 2008 à 00:51
Tu te prend trop la tête...
tu met une date dans l'enregistrement de l'article et tu conditionnes sur ça...
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
3
willeraser Messages postés 55 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 6 mai 2009
4 déc. 2008 à 22:58
Sur la page d'index par exemple, tu lances une fonction qui s'occupe de vérifier la durée de vie de tes enchères (date de post de l'enchère, type d'enchère et sa durée dans ton tuple de l'article, comme ça, tu peux calculer avec php la durée de vie restante, quand ca arrive à 0, un petit delete sur l'enchère).
Comme ca, lorsqu'un visiteur tombera sur l'index, il lancera lui même sans le savoir le processus de purge des vieux trucs.
C'est donc le visiteur qui déclenche la manip, si tu réfléchies bien, c'est parfait puisque si personne ne visite ton site, personne ne se rendra compte qu'une enchère est terminée même si elle l'est. Par contre, si quelqu'un vient, ca déclenche le nettoyage.
Si jamais ton site est assez conséquent, il se peut que la vérification systématique en page d'index soit lourde, à ce moment là, fait une vérification au détail sur une enchère spécifique ou par catégorie ;)

Bien sur, c'est du bricolage, comme t'ont dit les autres, cron est ce qu'il te faut, car si tu veux envoyer un mail pour avertir de la fin de vie d'une enchère, ce système ne te le permet pas ;)
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
willeraser Messages postés 55 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 6 mai 2009
5 déc. 2008 à 16:56
Je ne connaissais pas redby, je suis donc allé voir, c'est un hébergement gratuit mutualisé visiblement donc je ne pense pas qu'ils proposent de cron.
Comme l'a dit coucou747, OVH le propose, utilisable via une jolie interface plesk
3
picolo220 Messages postés 18 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 8 avril 2017
3 déc. 2008 à 17:28
Merci d'avoir répondu Teclis, pourrait tu me donner un peut plus de détails sur le scheduller, car je ne trouve pas beaucoup de d'informations.
Un exemple ou un lien assez concret, qui se raprocherait assez de mon cas.

Autre chose, est-il possible de mettre cela en place cher un hebergeur comme redby ou ovh...
0
picolo220 Messages postés 18 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 8 avril 2017
3 déc. 2008 à 21:14
a oui? ok bonne nouvelle lol.
Comment peut on configurer crontab pour n'executer qu'une seule fois une action? Un peut comme at .
Peut-on modifier le crontab depuis un script php?
Dites moi si je me prend la tête pour rien, avec mon idée de processus, si quelqu'un connait une autre solution.

Merci pour vos réponses!
0
picolo220 Messages postés 18 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 8 avril 2017
4 déc. 2008 à 17:30
Ben d'accord  mais comment je peut modifier le status de l'article à la date de l'échéance...?
Il faut bien qu'un script fasse la modif dans la base de donnée au moment voulu.
Est-ce clair? lol
Si j'ai un champ "venteTerminee" qui contient un booleen, dans ma base, je veux que à la date qui est dans mon champ "date", le booleen passe à true.
 
0
picolo220 Messages postés 18 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 8 avril 2017
5 déc. 2008 à 11:57
Merci willeraser, j'avais bien pensé à faire ce que tu propose mais ça ne me semblait pas propre en fait. Et c'est vrai que si je veut que la personne qui a fait l'enchère ou l'enchérisseur puisse recevoir confirmation par mail il faudrait que tout ça soit automatique.
Encore une dernière question, je suis hébergé cher redby, avec un serveur Linux je crois bien, puis-je installer cron dessus à votre avis? Comme l'a dit coucou747 plus haut en parlant d'ovh.
0
picolo220 Messages postés 18 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 8 avril 2017
5 déc. 2008 à 18:00
Merci beaucoup à tous pour vos réponses.
J'ai appris ce qu'il me fallait, je vais donc faire mes test en local sur un serveur lamp avec cron et puis si je dois mettre ce site en ligne, je ferai ça cher ovh.
0
Rejoignez-nous