делая кварцевый планировщик постоянным без JDBC - PullRequest
7 голосов
/ 25 января 2011

Мы создаем приложение на MongoDB , и нам необходимо периодически запускать задания, похожие на cron. Я использовал Кварц раньше для такого рода вещей, когда проекты основывались на СУБД с JDBC.

Поскольку мы уже используем MongoDB для основного хранилища данных в этом проекте, я бы предпочел не внедрять СУРБД просто для сохранения заданий Quartz, но, похоже, JobStore Реализация для MongoDB.

Кто-нибудь может порекомендовать либо способ поддержать Quartz с MongoDB, либо простую альтернативу Quartz? Мои потребности довольно просты (запускать различные Java-задания с определенной конфигурацией, например, cron).

Ответы [ 2 ]

8 голосов
/ 06 августа 2011

Я написал MongoDB JobStore for Quartz, который находится здесь: https://github.com/mulesoft/quartz-mongodb Он не поддерживает все, но работает для нескольких вариантов использования.

3 голосов
/ 26 января 2011

Мы запускаем кварц с помощью Spring, и это просто файл XML с заданными заданиями и выражениями cron.

Объявите работу весной:

  <bean name="myJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name="concurrent" value="false"/>
    <property name="targetBeanName" value="myBean"/>
    <property name="targetMethod" value="myScheduledMethod"/>
  </bean>

  <bean id="myJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="myJob"/>
    <!-- every 30s -->
    <property name="cronExpression" value="0/30 * * * * ?"/>
  </bean>

Кварцевая проводка:

  <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
      <!-- List of batch jobs to be fed to the scheduler. -->
      <list>
        <ref bean="myTrigger"/>
      </list>
    </property>
  </bean>

Запустите его с:

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App 
{
    public static void main( String[] args ) throws Exception
    {
        new ClassPathXmlApplicationContext("jobs-context.xml");
    }
}
...