cron表达式:
Seconds (秒) :可以用数字0-59 表示,
Minutes(分) :可以用数字0-59 表示,
Hours(时) :可以用数字0-23表示,
Day-of-Month(天) :可以用数字1-31 中的任一一个值,但要注意一些特别的月份
Month(月) :可以用0-11 或用字符串 “JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC” 表示
Day-of-Week(每周):可以用数字1-7表示(1 = 星期日)或用字符口串“SUN, MON, TUE, WED, THU, FRI and SAT”表示
“/”:为特别单位,表示为“每”如“0/15”表示每隔15分钟执行一次,“0”表示为从“0”分开始, “3/20”表示表示每隔20分钟执行一次,“3”表示从第3分钟开始执行
“?”:表示每月的某一天,或第周的某一天
“L”:用于每月,或每周,表示为每月的最后一天,或每个月的最后星期几如“6L”表示“每月的最后一个星期五”
“W”:表示为最近工作日,如“15W”放在每月(day-of-month)字段上表示为“到本月15日最近的工作日”
““#”:是用来指定“的”每月第n个工作日,例 在每周(day-of-week)这个字段中内容为"6#3" or "FRI#3" 则表示“每月第三个星期五”
Cron表达式范例:
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
任务类:
package com.study.common.task;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
public class TimeTask {
public void work(){
System.out.println("今天是:" + new Date());
System.out.println("美好的一天又开始啦-----");
}
}
spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">
<!-- 引入属性文件 -->
<context:property-placeholder location="classpath*:conf/*.properties"/>
<!-- 自动扫描注入 -->
<context:component-scan base-package="com.study.*"/>
<import resource="classpath*:conf/spring_properties.xml"/>
<import resource="classpath*:conf/spring_mybatis.xml"/>
<import resource="spring-scheduler.xml"/>
</beans>
spring-scheduler.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用哪个bean -->
<property name="targetObject" ref="timeTask"/>
<!-- 调用哪个方法 -->
<property name="targetMethod" value="work" />
<!-- 作业不并发调度 -->
<property name="concurrent" value="false" />
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobDetail" />
<!-- 秒 分 时 日 月 星期 年 -->
<property name="cronExpression" value="0/3 24 12 * * ?" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
</bean>
<!-- SimpleTriggerBean,只支持按照一定频度调用任务,如每隔30分钟运行一次 -->
<!--<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="timeTask" />
<property name="startDelay" value="0" /><!– 调度工厂实例化后,经过0秒开始执行调度 –>
<property name="repeatInterval" value="2000" /><!– 每2秒调度一次 –>
</bean>-->
</beans>
pom.xml除了spring的jar还需要单独引入quartz的jar
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.2</version>
</dependency>
分享到:
相关推荐
Spring定时任务的几种实现,欢迎交流!
Spring定时任务调用配置Spring定时任务调用配置Spring定时任务调用配置Spring定时任务调用配置Spring定时任务调用配置
spring定时任务SimpleTrigger 和CronTrigger 配置
spring spring spring spring定时任务所需jar 齐全
使用spring定时任务,使用spring+mybatis 向数据库中插入数据实例
一个tomcat下部署了两个应用,一个是普通web应用syncc,另一个应用syncc_wx属于微信公众号后台程序涉及消息定时推送,tomcat未分离...”spring定时任务执行两次的异常排查处理.docx"针对上述描述问题进行分析和解决。
Spring 定时任务 各参数详细说明,注解方式,简洁
Spring3.x企业应用开发实战 中 Spring 定时任务源码(spring 三种定时任务的实现方式),Spring quartz java 定时器 定时任务 源码
spring 做定时器任务时所依赖的10个jar包,用于实现java定时任务。
实现定时任务的执行操作!
NULL 博文链接:https://bijian1013.iteye.com/blog/2380233
spring 定时任务 示例代码
本文档详细介绍了Spring定时任务配置的两种方式。一种方式是使用Spring提供的 MethodInvokingJobDetailFactoryBean 代理类,Quartz通过该代理类直接调度任务类的某个函数,另外一种方式是任务类继承并实现Quartz接口...
本案例是基于quartz+spring做的定时任务,包含所有jar包,可以直接运行
Spring Quartz定时任务所需要的6个jar包:commons-collections.jar、commons-logging.jar、jta.jar、log4j-1.2.14.jar、quartz-all-1.6.0.jar、spring-2.0.6.jar
可运行的项目,实现了spring定时任务,很好理解!一看就懂