在spring中用quartz实现定时调度
2016-04-08 09:52
417 查看
最近项目需要,要在特定的时间执行一段代码。
在网上百度了会,看见有个quartz项目,故用了一用。
步骤如下:
以上的cron中我写的是在每天的9:40,11:50,16:00,18:00,20:40触发,没有找到好的方法,只能写成这样了,若高手看见了有什么好的方法,还望赐教
在网上百度了会,看见有个quartz项目,故用了一用。
步骤如下:
1.在manven中加入quartz
先在manven的pom中加入quartz:<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.1.1</version> </dependency>
2.配置quartz的spring文件
<!-- 1、Scheduler的配置 --> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <!-- 触发器列表 --> <ref bean="testTrigger" /> <ref bean="testTrigger1" /> <ref bean="testTrigger2" /> <ref bean="testTrigger3" /> <ref bean="testTrigger4" /> </list> </property> <property name="autoStartup" value="true" /> </bean> <!-- 2、Trigger的配置 begin--> <bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <!-- 指定任务 --> <property name="jobDetail" ref="testJobDetail" /> <!-- 指定任务时间 位置 含义 允许的特殊字符 1 秒(0~59) , - * / 2 分(0~59) , - * / 3 小时(0~24) , - * / 4 日期(1~31) , - * / ? L W C 5 月(JAN~DEC或1~12) , - * / 6 星期(SUN~SAT或1~7) , - * / ? L C # 7 年(可选,1970~2099) ,若为空,表示全部时间范围, - * / --> <property name="cronExpression" value="0 40 20 * * ?" /> </bean> <bean id="testTrigger1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="testJobDetail" /> <property name="cronExpression" value="0 40 9 * * ?" /> </bean> <bean id="testTrigger2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="testJobDetail" /> <property name="cronExpression" value="0 50 11 * * ?" /> </bean> <bean id="testTrigger3" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="testJobDetail" /> <property name="cronExpression" value="0 0 16 * * ?" /> </bean> <bean id="testTrigger4" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="testJobDetail" /> <property name="cronExpression" value="0 0 18 * * ?" /> </bean> <!-- 2、Trigger的配置 end--> <!-- 3、JobDetail的配置 --> <bean id="testJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.zhijianj.stucheck.service.quartz.SystemControllService"/> </bean>
以上的cron中我写的是在每天的9:40,11:50,16:00,18:00,20:40触发,没有找到好的方法,只能写成这样了,若高手看见了有什么好的方法,还望赐教
3.完成调度类
调度类需要实现quartz中的Job接口,在execute方法中执行调度方法package com.zhijianj.stucheck.service.quartz; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; /** * 系统调度类 * @author PuHy * @createTime 2016年4月8日 上午9:53:40 * @function * */ public class SystemControllService implements Job{ public void execute(JobExecutionContext arg0) throws JobExecutionException { System.out.println("now"+new Date()); } }到此为止,quartz的配置就完成了
相关文章推荐
- 通过方法名动态调用方法
- 深入浅出学Spring Data JPA
- java 字符串中特殊字符引号“ %百分号的转义
- 28.java泛型?
- Java反射
- Struts——Action与ActionSupport
- java执行sql语句一直没有响应
- Eclipse 中打不开android sdk managerf
- 4.8 JAVA
- java写jsp
- Java类加载器
- java2的三个版本
- Java四种内部类详解
- javax.net.ssl.SSLProtocolException: handshakealert: unrecognized_name
- struts实现添加学生
- JAVA学习作品之销售管理系统V1.1
- Java 第四次作业
- spring框架整合使用定时任务框架java quartz的示例代码配置
- RxJava 官方文档中文翻译
- java.lang.NoClassDefFoundError异常