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

Java Discussion :

Equivalent aux threads en JEE


Sujet :

Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2006
    Messages : 62
    Par défaut Equivalent aux threads en JEE
    Bonjour,

    J'aimerais que quand un utilisateur se connecte sur sa session, plusieurs process (threads?) se déclenchent et fonctionnent en parallèle pour mettre à jour l'IHM.

    J'ai lu qu'il ne faut pas utiliser de threads en JEE, mais donc, par quoi les remplacer?

    Merci d'avance!

  2. #2
    Membre très actif Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    802
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 802
    Par défaut
    Car ton serveur d'application est déjà lui même Multi-thread.

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2006
    Messages : 62
    Par défaut
    ummh d'accord!

    Mais qu'est ce qu'il faut utiliser pour faire un traitement parallèle? Un ejb ?

    Par exemple dans ma servlet, j'instancie un ejb ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    C'est déconseillé, mais dans la réalité, il faut bien reconnaitre que, pour toute une série de cas d'utilisation, J2EE ne fournis aucune alternative. Des librairies comme Quartz (scheduler) sont souvent utilisées en J2EE et pourtant, elles créent des threads à la pelle.

    Tout dépend au final de la raison pour laquelle tu as besoin d'un thread. Si tu veux déléguer des tâches en fond, comme par exemple, demander de réindexer une base de donnée à partir d'une formulaire web, l'utilisation de message bean peut être une bonne solution.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Par défaut
    Côté serveur, tu as aussi les EJB timer, ou EJB session asynchrones.
    Côté client, tu peux envoyer plusieurs requêtes Ajax, mais il faudrait en savoir un peu plus sur ton besoin exact.

  6. #6
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2006
    Messages : 62
    Par défaut
    umh, les EJB session asynchrones ca a l'air pas mal.

    Le besoin est:

    XXX sur le serveur d'application test une condition toutes les minutes. Si la condition est validée, un message est envoyé au client (page web).

    En java, j'aurais fais tourner un thread en tâche de fond pour checker cette condition, mais en jee ?

    Ou la seule solution est d'appeler régulièrement une méthode serveur en Ajax? Je préférerais quand même nettement un push au client : /

    Merci d'avoir fait avancer ma réflexion

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    y a pas vraiment de truc potable actuellement pour faire du push vers les client (même si le html 5 amène des trucs comme web socket pour le faire).

    Ce que font toutes les applications qui se rafraichissent régulièrement actuellement, c'est ça. Au ajax, avec un requete toutes les minutes ou toute les secondes suivant la charge pour le serveur et le besoin de réactivité.

  8. #8
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Sauf erreur, il n'y a pas de problème à utiliser des threads sur un serveur JEE, du moment qu'on comprend bien que le thread ne pourra pas "communiquer" avec le client.

    En gros il ne faut pas créer un thread qui contiendrait un HttpServletRequest ou HttpServetResponse (ou tout objet lié), car ces éléments deviendront invalide à la fin de la requête alors que le thread tournerait toujours...

    Donc non je ne vois pas vraiment de contradiction à cela, si tu le gères correctement.




    Personnellement j’utilise des threads pour l'envoi d'email.
    A la fin de certaines requêtes je dois générer un document à envoyer par email, ce qui peut prendre un certain temps. Afin d'éviter de "bloquer" le navigateur trop longtemps, je me contente de récupérer/vérifier les paramètres, et j'utilise un thread pour ce traitement (qui est totalement indépendant de la réponse http).




    Maintenant ton problème c'est plutôt de renvoyer l'info aux clients.
    C'est quoi ces clients ? Des applications mobile ? Un navigateur ? Ou autres ?


    a++

  9. #9
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    y a pas vraiment de truc potable actuellement pour faire du push vers les client (même si le html 5 amène des trucs comme web socket pour le faire).
    Il y a une solution, c'est les "event-stream" qui consiste à garder ouverte une connexion entre le client et le serveur. Ce dernier envoyant les infos au fur et à mesure...

    Plus d'info : http://www.html5rocks.com/en/tutoria...source/basics/


    a++

  10. #10
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2006
    Messages : 62
    Par défaut
    Merci pour vos réponses!

    Je vais m'orienter vers du ajax simple pour maj la page web donc

    Thanks !

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

Discussions similaires

  1. Comment "dire" aux threads de se terminer
    Par iza76 dans le forum POSIX
    Réponses: 5
    Dernier message: 12/03/2008, 10h21
  2. [Tomcat5] Erreur lié aux Threads
    Par shaun_the_sheep dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 24/01/2008, 22h24
  3. [JNI] Problème dû aux threads Java
    Par seiryujay dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 27/11/2006, 13h14
  4. [Debug]Donner des noms aux thread lors du débugage
    Par jeje99 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/12/2005, 16h49

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