@Scheduled注解用在springboot处理定时任务,启动类添加@EnableScheduling注解,就可以使用@Scheduled注解。
1.cron表达式
cron表达式是一串由5-6个空格分隔的字符串,从左到右依次表示【秒】【分】【小时】【日】【月】【周】(【年】可省略),如下图是表示下午16点准时执行该任务
@Scheduled(cron = "0 0 16 * * *")
private void refresh() { //TODO }
时间 | 取值范围 | 通配符 |
---|---|---|
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
小时 | 0-23 | , - * / |
日 | 1-31 | , - * ? / L W |
月 | 1-12 | , - * / |
周 | 1-7(1代表周日,7代表周六) | , - * ? / L # |
年(可省略) | 1970-2099 | , - * / |
通配符说明参考以下链接:
https://www.jianshu.com/p/1defb0f22ed1
2.默认时区
虽然@Scheduled有zone时区参数可以设置,但是大部分情况下都是直接省略,使用默认的时区。注意,默认时区和应用程序时区一致,但不一定等于服务器时区,服务器时区和应用程序的时区是可以单独设置的,下图服务器是北京时间,而应用程序是美国时间: