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

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs Discussion :

[Architecture] Traitement long


Sujet :

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Par défaut [Architecture] Traitement long
    Bonjour,
    je ne savais pas trop comment tagé mon message alors j'en propose un nouveau...
    Donc voila mon probleme traite d'architecture d'une application J2EE
    Je vous explique:
    Un utilisateur connecter a l'application a travers une interface web (jsp avec le framework struts) devra pouvoir lancer des traitements longs (de plusieurs secondes a une heure).
    De plus, plusieurs utilisateurs peuvent demander l'execution d'un traitement (différent) en simultané.
    Et je ne sais pas trop comment je doit implémenter ça.
    Je pensais émettre, lors de la demande de l'utilisateur, une requete vers une servlet, qui a son tour créerait un message driven bean, et lui enverer un message lui demandant d'effectuer le traitement.
    La servlet (qui ne serait pas bloqué lors du traitement) pourrait donc répondre a la requete, pour signaler a l'utilisateur que le traitement a été lancé.

    Je ne sais pas si toute "infrastructure" est judicieuse, mais elle me semble nécessaire, si je ne veux pas que mon utlisateur sont bloqué lors de sa requete sur une page blance qui mettrait plusieurs minutes a s'afficher....

    Je ne sais pas si mon idée est pertinante, et c'est pour cela que je post ce message. Je suis ouvert a toute proposition alternative.

    De plus, a prioris je vois pas comment il serait possible d'avertir que le traitement a été terminé.
    A moins que un code javascript effectuerait une requete ajax toutes les xx secondes pour intérroger le seveur de l'avancement du traitement.

    ps j'ai eu une autre idée:
    il serait possible également que la servlet en question rajoute dans la BD la demande de la requete, et que en parrallèle, un bean (une thread? un mdb, je ne sais pas) lit cette table et effectue le traitement.

  2. #2
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Par défaut
    Sinon comme je disait dans le message initial. Il serait possible que la servlet reçevant un ordre d'execution de traitement, inscrire dans la BD l'ordre d'execution de la tache.
    Un thread qui aurrait été créé au demarrage de l'application, "scruteré" la BD (toutes les xx sec.) a la recherche d'un traitment à exécuter, et créerait pour chaque demande une thread qui serait chargé d'exécuter la tache.
    Par contre je ne sais pas comment lors du démarrage de l'application (lors du déploiement) , je pourrais créé la thread "scrutante".

    Merci d'avance pour vos commentaires qui j'ose espérer seront nombreux

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Par défaut
    Bonjour,

    J'ai exactement les mêmes besoins que toi. J'utilise également Struts.
    Sans surprise, j'examine donc les mêmes pistes. La solution retenue pour le moment (faute de mieux) est d'inscrire une demande de traitement en base de données, puis de les exécuter de manière désynchronisée. La fin de chaque traitement serait signalée en base de données pour consultation des résultats.

    C'est très approximatif car le choix n'est pas encore arrêté. Je suis donc preneur de toute autre solution et/ou de tout retour d'expérience sur le sujet.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Par défaut
    Pas de problème je te tiendrais au courant quand mes recherches auront évolués.

    Sinon j'aurais aimé savoir comment pour le moment, tu prévoit de créer la thread qui sera chargé de regarder dans la base de données les traitements qui doivent être exécutés.
    Et si tu prévoit une thread d'execution par traitement a effecuter.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Par défaut
    Je me permet de vous relancer, car c'est un problème très important pour moi. Et que je pense que mon problème n'est pas si farfelu que ça.

    Mon post n'est peut être pas assez claire, si c'est le cas n'hésité pas a me demander des précisions.

    Merci d'avance

  6. #6
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Billets dans le blog
    2
    Par défaut
    Vous pouvez regarder ici qq idées :

    http://publib.boulder.ibm.com/infoce...ns/player.html

    http://dev2dev.bea.com/pub/a/2005/05...lel_tasks.html

    http://java.sun.com/blueprints/corej...Activator.html

    Dans le doc de BEA, vous verrez une référence au "WorkManager". Il existe une intégration de cette spec dans..........Spring, bien sûr !!

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

Discussions similaires

  1. Aide pour définir des index (traitement long)
    Par m-mas dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 25/05/2006, 20h39
  2. [VBA-E] Temps de traitement long
    Par argoet dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/05/2006, 09h58
  3. [Oracle8i]Performances, Commit, traitement long
    Par Drizzt [Drone38] dans le forum Oracle
    Réponses: 4
    Dernier message: 17/05/2006, 08h57
  4. Fermeture avec traitement long dans le onActivate
    Par benj63 dans le forum C++Builder
    Réponses: 14
    Dernier message: 20/03/2006, 18h54

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