|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 9 ![]() |
Bonjour,
J'aurais aimé savoir si l'un d'entre vous sait comment faire en sorte qu'une procedure stockée soit lancée automatiquement avec le demarrage de mysql. Le contexte de mon probleme est le suivant : Je recupere des données venant de différents process ponctuellement, à des intervalles de temps irreguliers. Je souhaite avoir une procedure stockée qui va calculer la moyenne des données recuperer et les inserer dans des tables precise (moy journaliere, hebdomadaire, etc) Bref, ma procedure stockée doit tourner en continu. Hors, s'il l'utilisateur effectue un reboot, je veux que la procedure soit à nouveau appellée, sans qu'il s"y connaisse ou qu'il n'ait à faire de manipulation. Merci pour votre aide. PS, vous l'aurez sans doute compris, je suis un debutant en mysql Alex |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : mai 2002 Messages : 1 022 ![]() |
Tu devrais plutot le gérer avec un processus qui lance la console "mysql" avec tous les paramètres (connexion, fichier sql à executer). Les taches automatiques sous windows c'est "at" je crois, sous unix/linux c'est "cron".
__________________
Alexandre T. PHP5/MySQL5 Codes prêts à l'emploi 30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc... Mes articles |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 9 ![]() |
Ok, je vais voir ca.
Une autre question sur le même probleme. Je veux donc executer ma procedure stockée en "tache de fond", continuellement. Pour cela, je voulais faire un boucle infini while(1=1) et la remplir de plusieurs condition sur la date. Le pb, c'est que lorsqu'il ne se passe rien (on ne retre dans aucun bloc if) mon cpu tourne à 100% Je voulais utiliser une fonction du style sleep, mais je ne la trouve pas en Mysql. Est ce que vous auriez une idée ? |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : mai 2002 Messages : 1 022 ![]() |
Non la tâche de fond va exploser ton CPU. Tu ne peux rien y faire. La fonction sleep n'existe pas en MySQL. Pas d'autre idée que ma proposition. Mais c'est exactement ce que fait "cron" (linux) ou "at" (windows). Tu peux la lancer toutes les 3 minutes, toutes les semaines, etc...
__________________
Alexandre T. PHP5/MySQL5 Codes prêts à l'emploi 30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc... Mes articles |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 9 ![]() |
Bonjour,
En fait, j'ai vu qu'une reponse à mon probleme pourrait venir du scheduler mysql. Par ex : CREATE EVENT e ON SCHEDULE EVERY 5 SECOND DO select * from histojour; Le probleme c'est que mysql ne supporte ce scheduler qu'à partir de la version 5.1.6. Je travaille avec WAMP, qui ne propose dans sa derniere version (1.6.3) que mysql 5.0.21 J'ai donc téléchargé la version 5.1.9 de mysql (le site ne propose que la version sans installeur) que j'ai dezipper dans c:/wamp/mysql Sauf que ca marche pas. Et quand j'essaie de la lancer via l'invite de commande j'obtiens le message d'erreur : ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) Est ce que ca parle à quelqu'un ? Merci Alex |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 9 ![]() |
il semblerait qu'en rajoutant le fichier my.ini de mon ancienne version de mysql, ca fonctionne.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com