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

Développement Web en Java Discussion :

Développer un Batch


Sujet :

Développement Web en Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 123
    Points : 77
    Points
    77
    Par défaut Développer un Batch
    Bonjour à tous, je développe actuellement une application Web (J2EE) basé sur Tomcat, et j'utilise le framework Spring.

    Mon application envoie régulièrement des mails lors de certaine action des utilisateurs.

    Je dois ajouter une gestion d'envoi de mail quotidienne.

    Je me pose la question de savoir si ca vaut le coup de développer un batch complet à exécuter à côté, sachant, que je vait multiplier les fichiers de configuration, les mises à jour, alors que je vais quasiment utiliser les mêmes codes.

    Ca va faire crier les puristes, mais est-ce pour un simple traitement de mail (qui ne présente qu'un faible risque de plantage) et ne représente un traitement lourd. Est-ce qu'il ne serait pas tout simplement plus simple de l'intégrer à ma webapp, et qu'elle se déclenche depuis ma webapps.

    Les mises à jour sur le serveur seront constitués simplement d'une webapps.

    Cette solution me semble à mes yeux plus simple, et je pourrais plus facilement proposer à l'administrateur de lancer l'envoie des mail directement depuis une interface dans ma webapps.

    Qu'en pensez-vous?

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ttropardy Voir le message
    ...
    Qu'en pensez-vous?
    Rien pour le moment, je ne suis pas sûr d'avoir compris la problématique

    Ta question serait : faut-il utiliser un moniteur batch externe à l'application web ou en embarquer un (ou autre chose...) ?

    Je dirais que compte tenu de ce que tu énonces, tu as le choix entre :

    - intégrer quartz
    - faire une servlet à démarrage automatique que bouclera sur la période cible pour exécuter le traitement

    Sachant que quartz est vraiment très simple à mettre en œuvre, il n'y a pas de raison (à priori) de s'en passer
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 123
    Points : 77
    Points
    77
    Par défaut
    Pour cette solution: Faire une servlet à démarrage automatique que bouclera sur la période cible pour exécuter le traitement

    En fait, je veux savoir pourquoi certains développeurs (quand on cherche sur internet ou qu'on en discute avec eux) trouve cette solution mauvaises? Alors qu'elle me parait plus simple à mettre en place? (Que ce soit avec quartz ou avec les Timer)

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    En ce qui me concerne, je ne trouve pas ça mauvais... pour peu de tâches...

    Les questions qu'on peu se poser seraient :

    - est-ce que j'aurai besoin d'autres travaux batch dans mon application
    - y a t-il des contraintes particulières dans la planification (démarrage à heures pleines, etc...)
    - aurai-je besoin d'externaliser mes batch sur un autre serveur pour alléger la charge
    - etc...

    Bref, ça dépend...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 123
    Points : 77
    Points
    77
    Par défaut
    Dans mon cas, en l'occurrence,
    il ne s'agit que d'envoi de mail le matin à 8h.
    Peu de gens se connecte à l'application à cette heure là.
    Je pense que l'envoi de mail n'est pas trop lourd.


    En revanche, si je reprend ta logique, je pense qu'il est effectivement préférable d'avoir un batch séparé pour des traitements lourds du type:
    • Indexation de document
    • Purge de donnée

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Dans la mesure où tu utilises une servlet différente pour chacun de tes batchs, tu as d'office du multi-thread mais à mon avis, ce n'est pas très "propre".
    Il serait préférable d'utiliser des classes étendant Thread pour définir un batch et utiliser une seule servlet à démarrage automatique pour lancer les threads.
    Du coup, on est très proche de la logique Quartz...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 123
    Points : 77
    Points
    77
    Par défaut
    La solution Technique vers laquelle je me tourne,je vais effectivement faire un Servlet qui se lance au démarrage, et ensuite instancier un Timer et programmer des TimerTask.

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/03/2011, 16h56

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