Configurer le comportement des Jobs de Quartz - Java - Programmation
Marsh Posté le 07-04-2005 à 11:23:57
je ne connais quartz que pour avoir lu les docs en diagonales. si comme ils te le disent, tu ne peux pas avoir des données membres, t'attends pas à ce que ça marche si tu le fais quand meme hein; tu vas avoir des effets de bord à tous les coups.
Après, je vois pas bien ou est ton probleme avec le fait d'utiliser le JobDataMap...
Marsh Posté le 07-04-2005 à 11:57:06
Ils ne disent pas que je ne peux pas, mais qu'on ne devrait pas en avoir besoin. Enfin c'est pas grave.
Marsh Posté le 06-04-2005 à 11:44:07
Bonjour à tous,
pour réaliser une application qui planifie des opérations de sauvegardes de plusieurs sites webs je me suis penché sur la librairie Quartz pour l'aspect planification. Je pense qu'il y a dedans tout ce qu'il me faut mais tout n'est pas encore bien clair et il y a certaines choses que je ne vois pas encore comment réaliser.
Je compte faire hériter ma classe effectuant les sauvegardes de la classe Job et il me semble ensuite que chaque fois qu'un trigger sera déclenché sur cette classe son constructeur par défaut sera appelé. Ce qui me gêne c'est que le travail effectué ne sera pas le même tout le temps, notamment parce que les opérations pourrot se faire sur des sites différents.
J'ai donc essayé de comprendre ce que l'on pouvait faire avec la classe JobDetail qui normalement définit les propriétés d'un Job en gardant un genre de Map modfié (JobDataMap). Je pensais donc à mettre dans ce JobDataMap les informations nécessaires à un des mes Job (typiquement infos de connection ftp dans mon cas) et ensuite, dans la méthode execute() existant pour tous les Job, à affecter les champs de ma classe Job correspondant aux infos de connection aux différents sites.
Seulement il est dit dans la doc de Quartz que les classes héritant de Job ne sont pas censées avoir des données membres et d'ailleurs les exemples qu'ils donnent ne révèlent que des données statiques pour le comportement par défaut j'imagine.
On pourrait me dire que ce n'est pas bien grave puisque ces informations de connection sont quand même disponibles dans le JobDataMap du JobDetail. C'est surement vrai mais je ne sais pas pourquoi, cette manière de faire ne me parait pas très "propre" et pourrait se révéler même assez chiante dans les communications entre les différentes classes que j'utilise, par exemple j'ai l'intention de passer en paramètre ma classe Job dans les construteur d'autres classes mais si je ne peux pas y mettre de données membres je serais obligé de rajouter des paramètres à ces constructeurs, bref je trouve que ça fait encore plus caca... mais je peux me tromper, je ne connais pas le Java ni même la prog depuis bcp de temps.
Ma question est donc (si vous êtes encore la) : est-ce que ça peut poser un problème si je mets des données membres dans ma classe de Job et que j'affecte ces données lors de l'execute() du Job ? et déjà, est-ce que c'est la bonne manière de faire ?
Merci de votre patience et de votre tolérance. ^^
---------------
Tar | Librarything