Frage

Welche ist der beste Weg, um einen Prozess in Scheduler laufen. Ich kann entweder tun es crontab oder Frühlings-Batch. Jede andere bessere Option?

War es hilfreich?

Lösung

Quartz

  

Quartz ist eine voll funktionsfähige Open Source   Job-Scheduling-System, das sein kann,   integriert, oder an der Seite verwendet,   praktisch jede Anwendung J2EE oder J2SE   - vom kleinsten Stand-alone-Anwendung auf das größte E-Commerce   System. Quarz kann verwendet werden, zu erstellen   einfache oder komplexe Zeitplan für   Dutzende, Hunderte oder sogar Ausführung   Zehn-of-Tausende von Arbeitsplätzen; Jobs, deren   Aufgaben werden als Standard-Java definiert   Komponenten oder EJBs. der Quarz   Scheduler enthält viele   Enterprise-Klasse, wie JTA   Transaktionen und Clustering.

Andere Tipps

Sie können auch auf Quartz aussehen, wenn Sie Aufgaben in einer VM planen möchten.

Wenn Sie etwas in regelmäßigen Abständen als separater Prozess machen wollen, ich für crontab gehen würde.

Ich Sache, die crontab zumutbar ist. Es ist ausgereiftes Programm für kommerzielle Zwecke verwendet auch.

Andere sheduler mit GUI Aufgabenerstellung ist MAESTRO. Sie könnten auch einige Konfigurationsdateien für die Automatisierung erzeugen.

Spring + Quartz ist viel einfacher aufzusetzen dann Spring Batch. Aber es hängt von Ihnen Anwendung.

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

Spring + Quartz können Sie einen MethodInvokingJobDetailFactoryBean definieren, die Zeitplan einen Methodenaufruf auf einer Bean (das existiert in Ihrem Anwendungskontext).

In diesem Beispiel orderService.cancelNotPaidOrders () wird alle 30 Minuten aufgerufen werden:

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top