spring配置quartz1.6.4版本

    xiaoxiao2022-06-24  34

    1.首先配置quartz.xml:

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- 被执行类 --> <bean id="testQuarzt" class="com.sei.job.ScheduleInfoService"> <property name="scheduler" ref="schedulerFactory" /> </bean> <!-- 将testQuarzt注入到job中 --> <bean id="testQuartzJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="testQuarzt" /> <property name="targetMethod" value="loadJob" /> <property name="concurrent" value="false" /> </bean> <!-- 将job注入到定时触发器 --> <bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="testQuartzJob" /> <property name="cronExpression"> <value>0/1 * * * * ?</value> </property> </bean> <!-- 将触发器注入任务工程 --> <bean id="schedulerFactory"  lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="testTrigger" /> </list> </property> </bean> </beans>

    2.在web.xml中引入上述xml

    3.ScheduleInfoService中调用loadJob,job中写入执行的任务

    4.在controller中通过发请求的方式改变策略。

    import java.text.ParseException; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.quartz.CronTriggerBean; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class TestController { @Autowired private Scheduler scheduler; // 设值注入,通过setter方法传入被调用者的实例scheduler       public void setScheduler(Scheduler scheduler) {              this.scheduler = scheduler;          }     @RequestMapping(value="/test1",method = RequestMethod.GET) @ResponseBody public String test1() throws SchedulerException, ParseException{  CronTriggerBean trigger =  (CronTriggerBean)scheduler.getTrigger("testTrigger",Scheduler.DEFAULT_GROUP);       trigger.setCronExpression("0/5 * * * * ?");         scheduler.rescheduleJob("testTrigger", Scheduler.DEFAULT_GROUP, trigger);         return "ok";  } }

    //可能出现注入失败等问题,对于配置文件,对于新手来说,不太懂springMVC得整个过程,就把配置文件都写成application*的形式,初始加载时都扫描了。

    转载请注明原文地址: https://ju.6miu.com/read-1123949.html

    最新回复(0)