Горячий запуск метода класса весной как нить, когда приложение загружается? - PullRequest
1 голос
/ 18 мая 2011

Мне нужно запустить класс из Quartz-Schedualer, и мне нужно, чтобы он работал всегда и параллельно с основным приложением.Класс всегда будет проверять наличие новых файлов в папке для обработки.Я хотел бы включить его в качестве прослушивателя в web.xml, но когда конструктор не запускается, загружается только запрос.Любые предложения?

Вот что я добавил в web.xml:

<listener>
        <listener-class>com.bamboo.common.util.QuartzSchedualer</listener-class>
</listener>

Вот как я объявил класс:

public class QuartzSchedualer {

     public void QuartzSchedualer (){
                try{

                    // Grab the Scheduler instance from the Factory

                    Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();


                    // and start it off

                    scheduler.start();


                    scheduler.shutdown();

                }  catch (SchedulerException se) {
            se.printStackTrace();
        }
     }

}

Заранее спасибо!

1 Ответ

2 голосов
/ 18 мая 2011

Вам не нужно включать его в web.xml, просто загрузите ваш appcontext в ваш web.xml, как вы, вероятно, уже делаете, и работайте с расписанием в течение весны:

Задание, ссылающееся на ваш бизнес-объект, у которого есть вызываемый метод:

<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject" ref="exampleBusinessObject" />
  <property name="targetMethod" value="doIt" />
  <property name="concurrent" value="false" />
</bean>

Триггер, который заботится о срабатывании метода:

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail" ref="exampleJob" />
  <!-- run every morning at 6 AM -->
  <property name="cronExpression" value="0 0 6 * * ?" />
</bean>

SchedulerFactoryBean для подключения триггера:

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
    <list>
      <ref bean="cronTrigger" />
    </list>
  </property>
</bean>

См. Далее в Пружинная документация для 2,5, здесь для 3,0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...