我需要从quartz-schedualer运行一个类,我需要它从主应用程序始终和并行运行。该类将始终检查要处理的文件夹中的新文件。我想把它作为一个监听器包含在web.xml中,但是这样构造函数不能运行,只加载了calss。任何sugestions?
这是我在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();
}
}
}
提前谢谢!
答案 0 :(得分:2)
您不需要将它包含在web.xml中,只需在您的web.xml中加载appcontext,就像您已经做的那样,并在spring中处理调度:
引用具有要调用的方法的业务对象的作业:
<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>
请参阅Spring documentation中的2.5,here获取3.0。