springTask 和 Qu 定时任务
作者:互联网
任务调度[后端任务调度每隔多长时间更新一下数据]
## 指定时间执行任务:
配置文件
# 开启注解扫描
<context:component-scan basepackage="com.pinyougou.task"/>
#开启 task 注解驱动
<task:annotation-driven/>
# 注解
@Scheduled(cron="* * * * * ?")
在需要定时执行的方法上添加该注解!
· 关于注解内容的相关解释:
每一个域可出现的字符如下:
Seconds:可出现", - * /"四个字符,有效范围为 0-59 的整数
Minutes:可出现", - * /"四个字符,有效范围为 0-59 的整数
Hours:可出现", - * /"四个字符,有效范围为 0-23 的整数
DayofMonth:可出现", - * / ? L W C"八个字符,有效范围为 1-31 的整数
Month:可出现", - * /"四个字符,有效范围为 1-12 的整数或 JAN-DEc
DayofWeek:可出现", - * / ? L C #"四个字符,有效范围为 1-7 的整数或 SUN-SAT 两个范围。1
表示星期天,2 表示星期一, 依次类推
Year:可出现", - * /"四个字符,有效范围为 1970-2099 年
每一个域都使用数字,但还可以出现如下特殊字符,它们的含义是:
(1)*:表示匹配该域的任意值,假如在 Minutes 域使用*, 即表示每分钟都会触发事件。
(2)?:只能用在 DayofMonth 和 DayofWeek 两个域。它也匹配域的任意值,但实际不会。因为
DayofMonth 和 DayofWeek 会相互影响。例如想在每月的 20 日触发调度,不管 20 日到底是
星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如
果使用*表示不管星期几都会触发,实际上并不是这样。
(3)-:表示范围,例如在 Minutes 域使用 5-20,表示从 5 分到 20 分钟每分钟触发一次
(4)/:表示起始时间开始触发,然后每隔固定时间触发一次,例如在 Minutes 域使用 5/20,
则意味着 5 分钟触发一次,而 25,45 等分别触发一次.
(5),:表示列出枚举值值。例如:在 Minutes 域使用 5,20,则意味着在 5 和 20 分每分钟触发一
次。
(6)L:表示最后,只能出现在 DayofWeek 和 DayofMonth 域,如果在 DayofWeek 域使用 5L,意
味着在最后的一个星期四触发。
(7)W: 表示有效工作日(周一到周五),只能出现在 DayofMonth 域,系统将在离指定日期的最
springTask使用
1、 创建 类
@Component
public class SeckillTask {
//定时 刷新 秒杀 产品
@Scheduled(cron = " * * * * ?")
public void test1(){
System.out.println(“定时任务执行了”);
2、配置文件
applicationContext-task
<context:component-san base-package=" " />
task:annotation-driven/
3、web 中 配置
< 加载 全局变量 >
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext-task.xml</param-value>
</context-param>
标签:DayofWeek,字符,20,springTask,触发,Qu,定时,Minutes,DayofMonth 来源: https://blog.csdn.net/CSDN___/article/details/85247880