Mettre a jour des donnée automatiquement a une certaine heure

Résolu
cs_wally88 Messages postés 361 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 1 octobre 2010 - 16 oct. 2007 à 10:37
cs_wally88 Messages postés 361 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 1 octobre 2010 - 16 oct. 2007 à 15:44
Bonjour,
 
Voila j'ai un site d'annonce et j'aimerais que tout les jour a minuit par exemple les annonces arrivé a echeance soit desacté et qu'un mail soit envoyé pour prevenir.

Comment on fait sa ? on doit le faire manuellement ? car je vois pas comment on automatise sa.
Ou faire la requete sur la page d'accueil mais sa doit alourdir enormeent le site si ya du monde qui passe.

Merci.

4 réponses

bossun Messages postés 173 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 15 décembre 2010 1
16 oct. 2007 à 15:40
J'ai pas été assez clair...

Dans ton fichier Global.asax tu as une methode Session_Start

Là tu va exécuter une fois ta requeste.. une fois que tout s'est bien déroulé, tu va enregister la date là date et l'heure dans un fichier ou une table...

Cette date te mermettra de savoir quand la dernière fois cette fonction a été exécutée.

Après lorsque le prochain visiteur arrive,

Session_Start Se redéclanche.. et tu va lire la date que tu va sauver.. ensuite tu fais une différence avec la date&heure du moment et tu regarde combien de temps se sont ecoulés depuis la dernière exécution.

si par exémple.. la dernière fois c'était il y a 20 min, ben tu ne fais rien.. parcontre si c'était il y a 24heures, tu exécute ta tache...

là ce que tu fais c'est lire une info dans la base de données à chaque session.. mais tu n'exécutes pas ta procédure à chaque fois...

J'espère avoir été plus clair cette fois..

Bossun

P.S1  C'est mieux de prendre son pied que de se prendre la tête!

/F
3
bossun Messages postés 173 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 15 décembre 2010 1
16 oct. 2007 à 13:32
Alors tu ne peux pas faire ça en asp.net.. je cherchais à faire qqch du genre mais sans succès.

Par contre tu peux faire via un job SQL Server (Si bien sur tu utilises SQL Server)

autrement tu peux faire une action qui s'exécute à chaque demarrage de Session ou Application,

tu enregistre l'heure et la date de la dernière exécution et à chaque demarrage de session, tu compare la date du jour et la date enregistére...

@+

Bossun

P.S1  C'est mieux de prendre son pied que de se prendre la tête!

/F
0
cs_wally88 Messages postés 361 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 1 octobre 2010
16 oct. 2007 à 13:49
Merci pour ta reponse, j'ai vaguement regarder pour le job sa a l air bine mais sa fonctionne sous sql 2005 apparement, mon hebergeur sa doit etre msde donc je ne pourrais rien faire dessus d'autant plus que je ne suis pas sur un dedié pour le moment et que lorsque je passerais sur dedié se sera sur un sql 2003.
Pour la session sa revient a faire une requete sql en page d'accueil en gros donc peut etre lourd comme appli nan ? pour disons 2000 enregistrement par jour mais si la requete est fait  5000 fois sa peu allez lol. mais pour ce qui est de l'envoie de mail en plus sa risque d'etre lourd.
Donc en fin de comte je vais etre obliger de le faire a la main a minuit :D
0
cs_wally88 Messages postés 361 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 1 octobre 2010
16 oct. 2007 à 15:44
Lol oui parfait merci beaucoup pour cette idée jvais allez voir de ce coté en esperant pas trop galerer (ya pas de raison :) )
Merci beaucoup.
0
Rejoignez-nous