其他分享
首页 > 其他分享> > springTask 和 Qu 定时任务

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