首页 > 代码库 > quartz+spring 实现多任务动态定时器问题
quartz+spring 实现多任务动态定时器问题
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:p= "http://www.springframework.org/schema/p" xmlns:aop= "http://www.springframework.org/schema/aop" xmlns:context= "http://www.springframework.org/schema/context" xmlns:jee= "http://www.springframework.org/schema/jee" xmlns:tx= "http://www.springframework.org/schema/tx" xsi:schemaLocation=" http: //www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http: //www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http: //www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http: //www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http: //www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http: //www.springmodules.org/schema/ehcache http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd"> <!-- The Task Bean--> <bean id= "myTask" class = "com.xxx.example.dynamicjob.MyTask" /> <!-- The quartz scheduler configuration --> <bean id= "scheduler" class = "org.springframework.scheduling.quartz.SchedulerFactoryBean" /> </beans> |
?
1 2 3 4 5 6 7 8 | package com.xxx.example.dynamicjob; public class MyTask { public void performAction() { System.out.println( "Hey, you reached me...:)" ); } } |
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | package com.xxx.example.dynamicjob; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.scheduling.quartz.CronTriggerBean; import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean; public class DynamicJobExample { /** * @param args */ public static void main(String[] args) { ClassPathResource res = new ClassPathResource( "dynamic-jobs.xml" ); XmlBeanFactory factory = new XmlBeanFactory(res); //get the quartzFactory bean Scheduler scheduler = (Scheduler) factory.getBean( "scheduler" ); //get the task bean MyTask myTask = (MyTask) factory.getBean( "myTask" ); try { // create JOB MethodInvokingJobDetailFactoryBean jobDetail = new MethodInvokingJobDetailFactoryBean(); jobDetail.setTargetObject(myTask); jobDetail.setTargetMethod( "performAction" ); jobDetail.setName( "MyJobDetail" ); jobDetail.setConcurrent( false ); jobDetail.afterPropertiesSet(); /* SimpleTriggerBean trigger = new SimpleTriggerBean(); trigger.setBeanName("MyTrigger"); trigger.setJobDetail((JobDetail) jobDetail.getObject()); trigger.setRepeatInterval(5000); trigger.afterPropertiesSet(); */ // create CRON Trigger CronTriggerBean cronTrigger = new CronTriggerBean(); cronTrigger.setBeanName( "CRON0001" ); // Execute after each 5 second String expression = "5 * * * * ?" ; cronTrigger.setCronExpression(expression); cronTrigger.afterPropertiesSet(); //scheduler.scheduleJob(jobDetail, cronTrigger); scheduler.scheduleJob((JobDetail) jobDetail.getObject(), cronTrigger); // Start Scheduler scheduler.start(); } catch (Exception e) { e.printStackTrace(); } } } |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。