Spring Task定时器

Spring Boot 使用 Spring Task不需要导入任何第三方依赖包。

1.如何设置定时器

Spring Task定时器_第1张图片

使用Cron来完成定时任务

Spring Task定时器_第2张图片

Spring Task定时器_第3张图片

 @EnableScheduling:注释确保创建了后台任务执行器。

@Scheduled:注解为方法设置了定时器

 fixedRate, 它指定方法调用之间的间隔,从每次调用的开始时间开始计算时间单位毫秒,注:是按照一定的速率执行,是从上一次方法执行开始的时间算起,如果上一次方法阻塞住了,下一次也是不会执行,但是在阻塞这段时间内累计应该执行的次数,当不再阻塞时,一下子把这些全部执行掉,而后再按照固定速率继续执行。

fixedDelay,它指定从任务完成后开始计算调用之间的时间单位毫秒,注:fixedDelay:控制方法执行的间隔时间,是以上一次方法执行完开始算起,如上一次方法执行阻塞住了,就不执行,直到上一次执行完,并间隔给定的时间后,执行下一次。

cron表达式:表达式可以定制化执行任务,可以实现更复杂的任务调度,执行的方式是与fixedDelay相近,按照上一次方法结束时间开始算起。

initialDelay:如: @Scheduled(initialDelay = 10000,fixedRate = 15000,这个定时器就是在上一个的基础上加了一个initialDelay = 10000 意思就是在容器启动后,延迟10秒后再执行一次定时器,以后每15秒再执行一次该定时器。

注:定时器的执行结果并不准确,造成这个原因是因为spring计划任务线程阻塞导致。

你可能感兴趣的:(spring,java,spring,boot)