SpringBoot定时任务

2020-08-27  本文已影响0人  haha_writing

配置步骤:

1、Application启动类上添加@EnableScheduling注解启动定时。

2、使用@Component和@Scheduled启动定时任务

需要注意的是,Springboot默认的定时任务是单线程执行的,会导致定时任务互相影响。假设其中一个任务执行时间过长,会阻塞其他任务的执行,这个时候,可以选择配置多线程执行。

@Configuration

public class ScheduledConfig implements SchedulingConfigurer{

    @Override

    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {

        taskRegistrar.setScheduler(Executors.newScheduledThreadPool(3));

    }

}

定时配置

固定时间间隔:@Scheduled(initialDelay = 2000, fixedRate = 1000)

固定时间延迟:@Scheduled(initialDelay = 2000, fixedDelay = 1000)

cron表达式:@Scheduled(cron = "0 0 * * * ?")

Cron表达式说明

Cron表达式格式,从左到右,空格分开,: 秒 分 小时 天 月 星期 年(可选)

秒的取值:0——59的整数

分的取值:0——59的整数

小时取值:0——23的整数

日期取值:1——31的整数

月份取值:1——12的整数

星期取值:1——7的整数

每个域除了上述的值,还可以包含下列特殊字符:

*  :表示匹配该域的任意值,假设在Minutes使用*,表示每分钟触发。

:表示列出枚举值,例如,在Minutes中使用10,20,30,表示在10、20、30分的时候触发。

上一篇下一篇

猜你喜欢

热点阅读