IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

monitoring d'une base de données pour synchroniser une mise a jour automatique [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut monitoring d'une base de données pour synchroniser une mise a jour automatique
    Bonjour a tous

    je travaille sur une application web qui affiche des données sous formes de graphes (highcharts). Ces données sont stockées dans une base mysql, et les tables correspondantes sont alimentées en continue (ou presque) par des capteurs distant. j'utilise des appels Ajax afin de fetcher le dernier point reçu dans la table.

    j'ai créer un script pour simuler la mise a jour automatique avec la fonction useleep() mais j'ai pas pu exactement savoir la bonne fréquence, et j'ai toujours des point qui s'affiche pas (parce que un appel Ajax arrive tard et loupe une donnée pour passer a la suivante)

    Ma question y'a t'il un moyen de superviser ma base données a fin que je sache avec quelle fréquence je fait la mise a jour et avec quelle fréquence je lance mes appels Ajax pour que je reçoit tous les point dans l'ordre.

    Merci infiniment

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    pourquoi ne juste pas récupérer les n dernières valeurs avec n correspondant au nombre de valeurs à afficher dans ton graphes... comme ça tu n'as jamais de pb de synchronisme..
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    merci ericd69

    mais ça sera le même problème, si je récupère les n valeurs je doit savoir a quel moment je récupère les n donnes suivantes. avec un outils de monitoring je dois analyser quand la base reçoit les données depuis le script de simulation et quand l appel ajax récupère une donnée ou un ensemble de données, j ai essayer de le faire manuellement mais ça pas marcher

  4. #4
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    alors un truc simple un table qui énumère les tables concernées et leur associe une date de lecture et une date de mise à jour

    c'est juste un update en plus de l'insert, il peut être fait via un trigger ou en faisant une procédure stockée pour l'insertion...

    avantage quelque soit la fréquence de lecture si date de lecture <> date de mise à jour alors tu lis la ou les n dernières valeurs de la table concernée
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    merci encore
    pouvez vous expliquez d avantage s il vous plait ,j arrive pas a saisir
    je sais a peine crée des simples tables
    c est a dire quelque soit la fréquence l appel Ajax fetch les points en ordre ?

  6. #6
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    ça permet de désynchroniser les choses

    tu dois lire toutes les valeurs entre la date de mise à jour (insertion des données) et celle de dernière lecture...

    le plus simple est de faire ça dans un trigger after insert

    la table des dates ressemble alors à:
    suivi(id,nom_table,date_lect,date_maj)
    le type des dates dépend du besoin de précision:
    • datetime si c'est à la seconde près
    • int unsigned si tu as besoin d'une précision de l'ordre de la microseconde en stockant un unix timestamp
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    merci eric

    ça parait difficile pour moi, je vais essayer !

  8. #8
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    bon j'ai réfléchi à ton truc

    je pense pas que ce que je t'ai proposé ne sera bon à long terme mais c'est un peu de ta faute vu que tu donne pas de détails...

    donc une approche robuste en partant de ton problème:
    utiliser des timestamp unix ( je suppose que les mesure peuvent arriver toutes les secondes ou moins) sinon un datetime...
    ensuite si tu veux stocker les valeurs le faire en utilisant les sessions php (je te laise regarder la doc seul)
    du coup tu gères le contenu de chaque graphes dedans comme un tableau dont tu contrôles la longueur
    en gros, un sous tableau dans $_SESSION pour gérer chaque graphe avec une initialisation du genre:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['graph1']=array('last'=>null,'data'=>array());
    $_SESSION['graph1']['last'] va représenter la référence temporelle de la dernière valeur lue:
    • si elle est null le tableau $_SESSION['graph1']['data'] est vide et tu dois le charger avec les éventuelles n dernières valeurs
    • si elle n'est pas nulle tu charges les valeurs dont la références temporelle est supérieure à $_SESSION['graph1']['last']


    si la session est supprimée ça te permet de recharger tout, sinon tu ne recharges que les éventuels résultats nécessaires...

    avantage secondaire tu peux lire avec différents clients web en même temps sur des pc différents qui se débrouilleront du coup à récupérer le contenu indépendamment...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    merci encore une fois Eric

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/03/2015, 16h42
  2. Réponses: 1
    Dernier message: 01/04/2010, 22h23
  3. Réponses: 8
    Dernier message: 23/03/2005, 19h28
  4. [base de données]partage d'une base de données
    Par Scrusher dans le forum JDBC
    Réponses: 4
    Dernier message: 02/06/2004, 13h33
  5. aide pour exporter une base de donnée
    Par matt55 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 06/04/2004, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo