Spring整合 Quartz 以及 Quartz动态任务
一、Quartz内部原理https://www.cnblogs.com/zhangchengzhangtuo/p/5705672.html二、Quartz常用API1,Job接口需要我自己去实现2,JobDetail提供一些监听,主要易于扩展3,Trigger 触发器可以认为是具体的执行方法,具体要做什么事情4,Cal
·
一、Quartz内部原理 https://www.cnblogs.com/zhangchengzhangtuo/p/5705672.html 二、Quartz常用API 1,Job接口 需要我自己去实现 2,JobDetail 提供一些监听,主要易于扩展 3,Trigger 触发器 可以认为是具体的执行方法,具体要做什么事情 4,Calendar 记录所有的任务触发点 5,Scheduler 调度器 独立的运行容器,所有的任务相关的东西全部放在调度器里面 6,SchedulerFactory是Spring给我们提供的一个入口 表达式 CronExpression 表达式格式如下(有严格的顺序): 秒 分 时 日 月 周 年 https://www.cnblogs.com/pipi-changing/p/5697481.html https://www.cnblogs.com/linjiqin/archive/2013/07/08/3178452.html CronExpression参考了linux的cron,比windows里面的计划任务实际更加详细 三、xml配置方式添加Quartz spring对应的配置文件如下: <bean id = "xmlTimer" class = "XMLTimer" /> <bean id="xmlInvoker" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="xmlTimer"/> <property name="targetMethod" value="execute"/> </bean> <bean id="xmlTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="xmlInvoker"/> <property name="cronExpression" value="0/5 * * * * ?"/> </bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="xmlTrigger"></ref> </list> </property> </bean> 对应的class: public class XMLTimer{ public execute(){ System.out.println("execute...."); } } 四、Annotation方式添加Quartz http://jingyemingyue.iteye.com/blog/1202292 1,xml中引入命名空间 xmlns:task="http://www.springframework.org/schema/task" 然后添加<task:annotation-driven/> 2,java代码 @Component public class AnnotationQuartz { //需要注意@Scheduled这个注解,它可配置多个属性:cron\fixedDelay\fixedRate @Scheduled(cron="0,10,20,30,40,50 * * * * ?") public void test(){ System.out.println("0.0"); } } Spring任务的动态调度: 可以参考:https://www.cnblogs.com/hehejava/p/4727205.html 实现思路: 1,由于SchedulerFactoryBean中管理了所有调度器,我们可以从spring容器中拿到SchedulerFactoryBean @Resource(name="scheduler") private Scheduler scheduler; 2,创建任务 ........
更多推荐
已为社区贡献3条内容
所有评论(0)