Quartz能够用来作什么?
Quartz是一个任务调度框架。好比你遇到这样的问题html
想每个月25号,信用卡自动还款git
想每一年4月1日本身给当年暗恋女神发一封匿名贺卡github
想每隔1小时,备份一下本身的爱情动做片 学习笔记到云盘spring
这些问题总结起来就是:在某一个有规律的时间点干某件事。而且时间的触发的条件能够很是复杂(好比每个月最后一个工做日的17:50),复杂到须要一个专门的框架来干这个事。 Quartz就是来干这样的事,你给它一个触发条件的定义,它负责到了时间点,触发相应的Job起来干活。tomcat
可是不少时候,咱们经常会遇到须要动态的添加或修改任务,而spring中所提供的定时任务组件却只可以经过修改xml中trigger的配置才能控制定时任务的时间以及任务的启用或中止,这在带给咱们方便的同时也失去了动态配置任务的灵活性。最理想的是在与spring整合的同时又能实现动态任务的添加、删除及修改配置。bash
1. 查看已经部署的定时任务
http://localhost:8080/list
2. 初始化定时任务
http://localhost:8080/init
3. 暂停定时任务
http://localhost:8080/stop
4. 恢复暂停的定时任务
http://localhost:8080/resume复制代码
spring/spring.xml 配置框架
- 传统方式
<!-- 使用MethodInvokingJobDetailFactoryBean,任务类能够不实现Job接口,经过targetMethod指定调用方法-->
<bean id="taskJob" class="cn.huashantech.lawyer.service.DataConversionTask"/>
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!--false表示等上一个任务执行完后再开启新的任务-->
<property name="concurrent" value="false"/>
<property name="targetObject" ref="taskJob"/>
<property name="targetMethod" value="run"/>
</bean>
<!-- 调度触发器 -->
<bean id="myTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobDetail"/>
<property name="cronExpression" value="0/5 * * * * ?"/>
</bean>复制代码
- 动态方式所需配置
<!-- 调度工厂 -->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">复制代码
cn.huashantech.lawyer.service.DynamicTask.Main学习
//以注解方式注入调度工厂
@Autowired
private Scheduler scheduler;复制代码
关于Quartz详细解释参考:www.cnblogs.com/drift-ice/p…spa
借鉴来源:blog.csdn.net/u014723529/….net