一、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,创建任务 ........
Spring整合 Quartz 以及 Quartz动态任务
最新推荐文章于 2021-02-13 16:15:24 发布