Temporisation ? - PHP - Programmation
Marsh Posté le 05-06-2007 à 16:47:44
http://fr.wikipedia.org/wiki/Cron
Marsh Posté le 05-06-2007 à 16:52:54
Non mais avoue que ce serait useless de faire un cron là dessus, c'est un script tout con, pas une sauvegarde des BDDs.
Je crois avoir trouvé une piste (démonstration pour 2 minutes). On calcule
(timestamp actuel - timestamp du fichier txt)/120, que l'on arrondit à l'entier supérieur:
Code :
|
Ensuite, on inscrit le nouveau timestamp, qui est en fait l'ancien + $nbX120:
Code :
|
Cela vous semble correct ?
Marsh Posté le 05-06-2007 à 17:17:55
De toute façon t'aurais beau faire un script, c'est pas ca qui te fera la mise à jour régulièrement. Il te faut un cron. Il y a des sites qui le font très bien et gratuitement.
Tu peux toujours prier pour qu'un visiteur passe le dimanche pour faire ta mise à jour mais c'est pas ce qu'il y a de plus efficace.
Marsh Posté le 05-06-2007 à 17:24:49
Non mais ça ira, là je bosse pour qu'il décale d'une semaine si un visiteur passe le lundi par exemple. Je persiste à penser que le cron pour ce genre de trucs c'est de la connerie. En plus si un visiteur y accède ça met à jour à un moment différent du cron donc...
Marsh Posté le 05-06-2007 à 17:28:46
Comme tu voudras. C'est toi le chef de ton projet.
Marsh Posté le 06-06-2007 à 11:05:18
Bah c'est pas compliqué pourtant
Dans ton fichier tu fous un timestamp de dimanche.
Si l'user passe 1 semaine après, disons un mardi, pourquoi tu veux mettre le timestamp du mardi ? Tu récupères le timestamp de ton fichier et tu lui ajoute 1 ou 2 semaines (ou plus) suivant le cas ... donc ça sera toujours un dimanche dans ton fichier
Marsh Posté le 06-06-2007 à 12:33:26
T'as le droit de penser ce que tu veux Zorro561, y compris qu'on dit des conneries, mais n'empêche que cron c'est fait exactement pour ça. Tu trouves vraiment que mettre une ligne dans une crontab c'est plus lourd que de passer la journée à bricoler un truc bancal en PHP ?
Marsh Posté le 06-06-2007 à 12:50:15
Nan mais le truc c'est que mon script est tout con, et que j'aimerais éviter de passer par la case cron. En plus j'ai envie de coder mon propre truc pour m'entraîner.
Dj Yell: ouais j'avais saisi le truc, fallait juste bien l'élaborer.
Marsh Posté le 06-06-2007 à 13:06:21
Question con : est ce que c'est génant si ce fameux traitement n'est lancé qu'une ou deux fois par an? (bref, s'il se passe plus de 2 semaines entiére sans qu'il soit exécuté)
Marsh Posté le 06-06-2007 à 15:09:41
Non aucun. Enfin tu parle du cron ou du script a Zorro ?
Marsh Posté le 06-06-2007 à 15:51:04
Hum non, je crois avoir bien codé le truc pour qu'il gère ça.
Il décale automatiquement:
Code :
|
Marsh Posté le 06-06-2007 à 15:53:39
C'est mal codé, tu vérifie même pas si l'ouverture du fichier s'est bien déroulé. Mouahahahaha
Marsh Posté le 06-06-2007 à 15:55:08
Bah oui, c'est qu'on début, j'ai vérifié que le truc marchait, ensuite vient l'optimisation.
Marsh Posté le 06-06-2007 à 16:21:50
Comme ça c'est déjà mieux ?
Code :
|
Marsh Posté le 06-06-2007 à 16:33:15
presque! T'as oublié la ligne 23
Marsh Posté le 06-06-2007 à 17:38:30
En effet, mais je suis parti du principe que si le script continue à s'éxécuter, c'est que le fichier est accessible et que je n'ai pas à re-vérifier, étant donné que la page s'éxécute en moins d'une seconde, si au début du script il est accessible, à la fin il le sera aussi.
Enfin mieux vaut prévenir que guérir, je l'ai rajouté .
Marsh Posté le 06-06-2007 à 18:02:35
Zorro561 a écrit : Enfin mieux vaut prévenir que guérir |
Surtout dans l'informatique. On n'est pas à l'abri d'un foutu plantage à la noix.
Question :
Pourquoi ouvrir 2 fois le même fichier alors qu'une seule ouverture suffirait ?
Marsh Posté le 06-06-2007 à 18:06:11
Hum je sais pas, j'ai peut-être pensé que ça buguerait (j'avais rajouté pas mal de code pour le debug). T'as raison, je pourrais virer le fclose du début.
Marsh Posté le 06-06-2007 à 18:08:51
Tu peux mettre ton fclose() en dehors de tes conditions, dès que tu ne t'en sers plus. Vala.
Marsh Posté le 07-06-2007 à 13:43:50
Je viens de me rendre compte que l'arrondi du nombre doit se faire à l'entier inférieur et non à l'entier supérieur. Si celui-ci est un entier on ne le change pas.
Marsh Posté le 05-06-2007 à 16:45:02
Hey,
J'ai besoin de faire une temporisation (enfin j'ai envie qu'une partie du code ne séxécute que tous les X moments), et j'ai mis au point un système tout con, qui enregistre un timestamp dans un fichier txt, et qui le compare avec l'actuel. Avec un petit calcul, j'éxécute un code seulement si le dernier timestamp enregistré date d'au moins 2 minutes.
Voici le code:
Tout fonctionne à merveille. Seulement, dans un souci de perfectionnisme, j'aimerais améliorer mon truc.
Explication . Imaginons mon script à grande échelle (une semaine par exemple). Un certain code doit s'éxécuter tous les Dimanche. J'éxécute le script pour la première fois un Dimanche, pour l'initialiser sur ce jour.
Un visiteur va se pointer le Mardi, et comme le timestamp actuel-7 jours sera plus petit que celui enregistré (c'est-à-dire si ça ne fait pas encore 7 jours), le code ne sera pas éxécuté. Jusque là tout va bien.
Maintenant, si aucun visiteur ne vient le dimanche, le script ne sera pas éxécuté, donc le timestamp ne sera pas mis à jour dans mon txt. Si un visiteur vient le lundi, le txt sera mis à jour, mais du coup, avec la vérification des 7 jours, la prochaine MAj sera faite... un lundi !
Or à la base mon script est conçu pour faire ses MAJ tous les Dimanche !
Comment faire pour que le script fonctionne correctement ? Merci beaucoup.