Вопрос

Какой самый лучший способ запустить процесс в планировщике.Я могу сделать это либо crontab, либо Spring-Batch.Есть какой-нибудь другой вариант получше?

Это было полезно?

Решение

Кварц

Quartz - это полнофункциональная система с открытым исходным кодом система планирования заданий, которая может быть интегрирована с приложением или использоваться параллельно практически с любым приложением J2EE или J2SE - от самого маленького автономного приложения до крупнейшей системы электронной коммерции .Quartz можно использовать для создания простых или сложных расписаний для выполнения десятков, сотен или даже десятков тысяч заданий;задания, чьи задачи определены как стандартные Java компоненты или EJBS.Quartz Планировщик включает в себя множество функций корпоративного класса, таких как JTA транзакции и кластеризация.

Другие советы

Вы также можете обратиться к Quartz, если хотите планировать задачи на одной виртуальной машине.

Если вы хотите периодически что-то делать как отдельный процесс, я бы выбрал crontab.

Я думаю, что кронтаб разумен.Это зрелая программа, используемая также в коммерческих целях.

Другим менеджером по созданию задач с графическим интерфейсом является MAESTRO.Вы также могли бы сгенерировать несколько конфигурационных файлов для автоматизации.

Spring + Quartz намного проще настроить, чем Spring Batch.Но это зависит от вашего приложения.

http://static.springsource.org/spring/docs/2.5.x/reference/scheduling.html

Используя Spring + Quartz, вы можете определить MethodInvokingJobDetailFactoryBean, который планирует вызов метода для компонента (который существует в контексте вашего приложения).

В этом примере OrderService.cancelNotPaidOrders() будет вызываться каждые 30 минут:

<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>

Попробуйте планировщик TimeMachine

https://bitbucket.org/saltnlight5/timemachine-scheduler/wiki/Home

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top