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

EDT/SwingWorker Java Discussion :

Méthode de rafraichissement d'un thread


Sujet :

EDT/SwingWorker Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut Méthode de rafraichissement d'un thread
    Bonjour,

    Je me demandais comment mettre en place un thread pour rafraîchir automatiquement un bloc.

    Je m'explique, j'ai une application multi-poste.
    Imaginons un Poste 1, il met a jour les données du bloc.

    J'aimerais que sur le poste 2, quasi-instantané, j'ai le rafraîchissement du bloc.

    Pour obtenir ce rafraîchissement, je pensais :
    -Mettre un thread de cadencement rapide 1s.
    -Mettre un écouteur.
    -->Suite à l'écouteur provoquer le rafraîchissement du bloc.

    l'écouteur serait une requête SQL!

    Ce qui me gêne c'est le thread de cadencement de 1s, qui risque de perturbé et ralentir grandement l'application et le serveur BDD. Car ça obligerait a exécuter une requête SQL toutes les secondes sur tous les postes.

    Je cherche une méthode ou pratique pour ce genre de problème.
    Comment y remédier?

    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2007
    Messages : 64
    Par défaut
    Juste une idée au passage, tu pourrais peut être utiliser RMI en ayant un serveur sur lequel les 2 clients se connectent et mettent à jour les données qui sont répercutés sur tous les clients?

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut
    J'ai compris ton idée.
    Mais dans mon cas, chaque postes devra être client et serveur à la fois sans config préalable.

    Le seul serveur en commun est une connexion à une base de donnée.

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Par défaut
    la bdd se trouve ou?

  5. #5
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut
    la bdd se situe:
    -soit sur un serveur externe
    -soit sur un poste client.

    J'ai représenté ci joint le schéma type que je pensais appliquer :
    Images attachées Images attachées  

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pas forcément la meilleure idée d'architecture.

    Dans ce genre de cas, afin de pouvoir gérer les interactions avec la base de données de façon unique, et de pouvoir pousser une notification directe en cas de modification aux autres clients, on préfère intercaler un serveur proposant des services de type SOAP/REST/RMI ou autres entre la base de données et les clients. De plus cela de permet d'éviter d'embarquer les users / mots de passe de la base au niveau de client, et d'éviter d'ouvrir la base en accès direct à tout le monde.

    Plus de tracer de façon propre qui a fait quoi.


    L'archi que je proposerait est de créer donc des services SOAP ou REST selon ta préférence pour chaque action disponible dans ton application (au sens fonctionnel, pas au sens base de données). Chaque service ira ensuite faire la ou les actions nécessaire en base une fois l'appel effectué par le client.

    Ensuite, pour notifier les clients qu'une nouvelle version des données a été effectuée, il est préférable de publier cette information en un endroit ou elle sera disponible pour chaque client. Pour celà, un topic JMS est une solution plutôt accordée.

    Suite à chaque create/update/delete correctement en base, le serveur d'application balance un message sur le topic JMS, topic sur lequel écoutent l'intégralité des clients.
    A chaque message posté sur le topic, les client vont être notifiés du message et directement exécuter le code que tu auras préparé à cet effet.


    Schéma d'archi:
    Images attachées Images attachées  

Discussions similaires

  1. Méthode bloquante et pool de threads
    Par kaporal974 dans le forum Général Java
    Réponses: 3
    Dernier message: 09/05/2014, 14h52
  2. Arrêter une méthode qui s'exécute en Thread
    Par Mister Nono dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 27/10/2008, 12h43
  3. Questions sur méthodes d'un objet appelant threads
    Par med365 dans le forum Général Python
    Réponses: 8
    Dernier message: 26/06/2008, 16h14
  4. thread et méthodes static
    Par sylpichard dans le forum MFC
    Réponses: 3
    Dernier message: 02/06/2004, 18h12
  5. [SWING][THREAD]Méthodes pour afficher une Frame
    Par pompidouwa dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 05/05/2004, 11h35

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