Bonjour à tous,
j'ai programmé un batch pour qu'il se lance toute les 10 minutes. Depuis mon interface, j'aimerais pouvoir afficher la date de prochaine exécution du script. J'ai vu que c'était faisable en utilisant la méthode getNextFireTime() de Trigger. Cette fonction est censé me retourné la date de la prochaine exécution d'après la javadoc, mais elle ne me retourne que la première date d'exécution. Inversement, getPreviousFireTime() qui doit retourné la date de dernière exécution retourne toujours null, comme si mon traitement ne faisait pas. Mon traitement est pourtant bien appelé, et il s'exécute correctement.
Je pense qu'il s'agit d'une nuance entre un Job et une instance de Job, mais je cherche depuis quelques temps, et je ne trouve pas.
Voici mon fichier de configuration,
Je déclare mon bean qui contient une méthode run(), celle qui effectue le traitement
<bean name="checkImportAuto" class="batch.CheckImportAuto"/>
Ensuite, je déclare la tache
1 2 3 4 5
| <bean name="tacheCheckImportAuto" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="checkImportAuto"/>
<property name="targetMethod" value="run"/>
<property name="concurrent" value="false"/>
</bean> |
Enfin, je déclare le trigger pour qu'il se déclenche toute les minutes
1 2 3 4 5 6
|
<bean id="triggerCheckImportAuto2" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="tacheCheckImportAuto"/>
<property name="startDelay" value="10000"/>
<property name="repeatInterval" value="60000"/>
</bean> |
J'appelle ce trigger dans ma SchedulerFactoryBean.
Avez-vous déjà eu ce problème, n'hésitez pas à me demander des détails si ce n'est pas assez clair. D'avance merci.
Partager