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

Servlets/JSP Java Discussion :

Timeur dans servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut Timeur dans servlet
    Bonjour.

    Je travaille sur une application J2EE/AJAX. Le principe est que le client ouvre une connexion vers le serveur, ce dernier guette les modifications, et au bout de 30 secondes renvoie l'etat actuel du traitement. Plusieurs clients peuvent accéder au serveur pour suivre/interagir avec le traitement en cours. Si un utilisateur a fait une modification, les autres doivent en être immédiatement notifiés.

    Pour les 30 secondes, je lance un javax.swing.Timer. Mais ce dernier n'interagit qu'avec une seule connexion, en me permettant pas de notifier aux autres connexions le changement effectué.

    Je pensais donc faire une classe singleton, et à l'intérieur avoir un tableau/liste de Timer, chaque timer correspondant à un client, et si l'un modifie l'etat du traitement, faire setDelay à 0 sur tous les timeurs que chacun soit immédiatement noticé du changement.

    Que pensez-vous de cette idée ? Ya t-il une meilleure manière de tourner le problème ?

    Merci de vos avis ^^

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 237
    Par défaut
    Réponse vague :

    Il existe des servlets fonctionnant comme des tâches automatisées avec un timer intégré (durée de la 1ère utilisation, périodicité, etc.).

    ftp://ftp-developpez.com/grisha/javasched.pdf

    Tu trouveras des tâches, job, listener (pour écouter)

    Mais à priori, je ne pense que ça soit la solution la mieux adaptée...

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    J'ai fait mon implémentation comme décrit plus haut. Cependant, si tu as une meilleure diée de comment tourner le problème ca m'interesse.

    J'ai parcouru ton document, mais ca pousse plus vers la planification de tache, alors que la cnneixon est refaite dynamiquement via JS dans mon cas ^^

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 237
    Par défaut
    En fait que veux-tu surveiller, pour en informer les autres ?
    Ce sont des données en base ?

    Car un Listener (Ecouteur) ou un Trigger(Evénement changement d'état sur BDD) serait plus adapté que des Timers à mon avis.

    Mais je ne connais pas tous les tenants et aboutissants.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Faire ca avec un pattern Observer tu veux dire ? Faut voir, mais il faut aussi intégrer la notion de timeout (30 sec de connexion, puis renvoie de l'état du traitement) ^^

    de plus je ne sais pas quel element serait observable

    Quand au trigger, il est lié à la base de données, il peut servir de delencheur d'evenement à traiter sous java ? de plus sous Mysql 4.1, il ne me semble aps qu'il y ait de trigger

    Sinon, oui, ce que je veux surveiller, c'est une action de validation d'un utilisateur, qui provoque l'enregistrement en bdd, et notifie les autres du changement.

Discussions similaires

  1. OutputStream dans Servlet (telecharger fichier)
    Par mouss4rs dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 24/03/2008, 12h03
  2. code javascript dans servlet
    Par fafoula dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 28/12/2007, 23h13
  3. Session dans servlet
    Par Mister Nono dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 31/10/2006, 12h30
  4. utf_8 dans servlet
    Par ridondo dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/10/2006, 11h33
  5. probleme avec javascript dans servlet
    Par Battosaiii dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 18/04/2006, 10h50

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