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