SpringBoot@Scheduled注解(cron、fixedRate、fixedDe。
。。
1. fixedDelay控制⽅法执⾏的间隔时间(毫秒),是以上⼀次⽅法执⾏完开始算起,如上⼀次⽅法执⾏阻塞住了,那么直到上⼀次执⾏
完,并间隔给定的时间后,执⾏下⼀次。上个过程结束后,等待300ms,执⾏下个过程
2. fixedRate是按照⼀定的速率执⾏,是从上⼀次⽅法执⾏开始的时间算起,如果上⼀次⽅法阻塞住了,下⼀次也是不会执⾏,但是在阻
塞这段时间内累计应该执⾏的次数,当不再阻塞时,⼀下⼦把这些全部执⾏掉,⽽后再按照固定速率继续执⾏。以固定300ms的频率执⾏某个过程,不管前⾯的过程是否还在进⾏,⼀般⽤于可以**独⽴、并⾏**的执⾏过程
3. cron表达式可以定制化执⾏任务,但是执⾏的⽅式是与fixedDelay相近的,也是会按照上⼀次⽅法结束时间开始算起。
4. initialDelay 如: @Scheduled(initialDelay = 10000,fixedRate = 15000,这个定时器就是在上⼀个的基础上加了⼀个initialDelay
复旦千分考
= 10000 意思就是在容器启动后,延迟10秒后再执⾏⼀次定时器,以后每15秒再执⾏⼀次该定时器。
参考⽂章
package com.demo.task;
import com.demo.util.DateUtils;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;马丹
@Component
public class Test_task {
//@Component 注册为spring组件
/*
商业英语
1、fixedDelay控制⽅法执⾏的间隔时间,是以上⼀次⽅法执⾏完开始算起,如上⼀次⽅法执⾏阻塞住了,那么直到上⼀次执⾏完,
并间隔给定的时间后,执⾏下⼀次。
2、fixedRate是按照⼀定的速率执⾏,是从上⼀次⽅法执⾏开始的时间算起,如果上⼀次⽅法阻塞住了,下⼀次也是不会执⾏,
但是在阻塞这段时间内累计应该执⾏的次数,当不再阻塞时,⼀下⼦把这些全部执⾏掉,⽽后再按照固定速率继续执⾏。
3、cron表达式可以定制化执⾏任务,但是执⾏的⽅式是与fixedDelay相近的,也是会按照上⼀次⽅法结束时间开始算起。怎么种红薯
4、initialDelay 。如: @Scheduled(initialDelay = 10000,fixedRate = 15000,这个定时器就是在上⼀个的基础上加了⼀个
initialDelay = 10000 意思就是在容器启动后,延迟10秒后再执⾏⼀次定时器,以后每15秒再执⾏⼀次该定时器。
*/
@Scheduled(cron="0 */1 * * * ?")
public void Test_task(){
//System.out.println("定时1分钟执⾏⼀次");
}
//*/5 * * * * ? 5秒执⾏⼀次
@Scheduled(cron = "*/5 * * * * ?")
public void time(){
//System.out.println("每5秒执⾏⼀次:"+ DateUtils.dateToString(new Date(),"yyyy-MM-dd HH:mm:ss"));
}
//fixedRate 定义⼀个按⼀定频率执⾏的定时任务
@Scheduled(fixedRate = 5000)
public void fixedRate(){
System.out.println("每5毫秒执⾏fixedRate⼀次:"+ DateUtils.dateToString(new Date(),"yyyy-MM-dd HH:mm:ss"));
}
//fixedDelay 定义⼀个按⼀定频率执⾏的定时任务,与上⾯不同的是,改属性可以配合initialDelay,定义该任务延迟执⾏时间。通信服务
@Scheduled(fixedDelay = 5000)
public void fixedDelay(){
System.out.println("每5毫秒执⾏fixedDelay⼀次:"+ DateUtils.dateToString(new Date(),"yyyy-MM-dd HH:mm:ss"));
}
@Scheduled(initialDelay = 1000,fixedRate = 5000)
public void initialDelay(){
System.out.println("华丽的分割符----"+DateUtils.dateToString(new Date(),"yyyy-MM-dd HH:mm:ss"));
}
}
学生期末自我评价
>2021/10/18 cron表达式>#问题:0 0/10 * * * 与 0 */10 * * * 的区别?
一个广一个黄说明:从5:07分钟的时候执⾏该任务
荷叶泡水
0 0/10 * * *会在5:10的时候进⾏执⾏,
0 */10 * * *会在5:17进⾏执⾏。这就是两者的差别。
0 0/10 * * *代表从0分钟开始,每10分钟执⾏任务⼀次。0 */10 * * *代表从任务启动开始每10分钟执⾏任务⼀次;*代表任意字符,/代表递增;