简单定时器任务调度 @schedule

使用  @schedule 注解 完成各种定时设定。官方 API

@Scheduled中可以指定如下3中时间表达式:

1.

@Scheduled(fixedRate=2000)  // 每隔2秒执行一次
public void fixedRate(){
    System.out.println("fixedRate...");
}

2.

@Scheduled(fixedDelay=2000)  // 在上一次执行完成后延迟 2 秒再执行该方法
public void fixedDelay(){
    System.out.println("fixedDelay...");
}

3.

@Scheduled(cron=" * * * * * * ")  // 每秒执行
public void cron(){
    System.out.println("cron...");
}


cron 里其实是 cron 表达式。一个cron表达式是由六个或者七个子表达式(字段)组成的字符串。而子表达式或者称为字段之间用空格隔开。

字段名是否必需允许的值允许的特殊字符
秒(seconds)Y0-59, - * /
分(minutes)Y0-59, - * /
时(hours)Y0-23, - * /
天(day of month)Y1-31
, - * /L W C
月(month)Y0-11 或者 JAN-DEC, - * /
星期(day of week)Y1-7 或者 SUN-SAT, - * /?L C#
年(year)N1970-2099或者不写, - * /

还记得上面的六个 “*”么 ?从第一位到最后一位分别表示秒 分 时 天 月 星期 年 最后一位年可以不写。

对于以上特殊字符,可以这么理解:

“,”表示and

“-”表示一个区间段,即开始到结束

“*”表示全选,即用汉语中的“每”或者英文中的every/each/per

“/”表示一个区间段的时长,例如放在第一位“/10”则表示每10秒

“L”表示最后,即Last

“W”表示weekday,即工作日也就是周一到周五

“C”表示canlendar,即日历,例如“1C”在星期位上就是包括日历上的星期日

“#”表示序列,如“#2”表示第二


如果使用 spring boot 搭建,定时器不运行,可参考

https://spring.io/guides/gs/scheduling-tasks/

参考来自:

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/annotation/Scheduled.html

http://stackoverflow.com/questions/11608531/injecting-externalized-value-into-spring-annotation

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/annotation/Scheduled.html

http://my.oschina.net/crazyharry/blog/347687

转载于:https://my.oschina.net/porcoGT/blog/611065

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值