Question
Quelle est la meilleure façon d'exécuter un processus dans le planificateur. Je peux soit le faire crontab ou printemps-Lot. Toute autre meilleure option?
La solution
Le quartz est un, open source complet système de planification du travail qui peut être intégrée avec, ou utilisé le long du côté pratiquement toutes les applications J2EE ou J2SE - de la plus petite application autonome le plus grand e-commerce système. Le quartz peut être utilisé pour créer horaires simples ou complexes pour exécuter des dizaines, des centaines, voire des dizaines de milliers d'emplois; emplois dont tâches sont définies comme standard Java composants ou EJB. le Quartz Planificateur comprend de nombreux des fonctionnalités d'entreprise, tels que JTA les transactions et le regroupement.
Autres conseils
Vous pouvez également regarder Quartz si vous souhaitez programmer des tâches dans une machine virtuelle.
Si vous voulez faire quelque chose périodiquement un processus distinct, je vais pour crontab.
chose que je crontab est raisonnable. Il est programme à maturité à des fins commerciales aussi.
Autres sheduler avec la création de tâches de GUI est MAESTRO. Vous pouvez également générer des fichiers de configuration pour l'automatisation.
Spring + Quartz est beaucoup plus facile à installer puis Spring Batch. Mais cela dépend de votre application.
http://static.springsource.org/spring /docs/2.5.x/reference/scheduling.html
Utilisation Spring + Quartz vous pouvez définir une MethodInvokingJobDetailFactoryBean qui planifie un appel de méthode sur un haricot (qui existe dans votre contexte d'application).
Dans cet exemple orderService.cancelNotPaidOrders () sera appelé toutes les 30 minutes:
<bean id="cancelExpiredOrders" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetBeanName" value="orderService"/>
<property name="targetMethod" value="cancelNotPaidOrders"/>
<property name="concurrent" value="false" />
</bean>
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="cancelExpiredOrders" />
<property name="startDelay" value="10000" />
<property name="repeatInterval" value="1800000" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
</list>
</property>
</bean>
Essayez TimeMachine Scheduler
https://bitbucket.org/saltnlight5/timemachine-scheduler/wiki/Home