springBoot @Scheduled如何实现多个任务同时开始执行
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,springBoot @Scheduled如何实现多个任务同时开始执行,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。@Schedul
千家信息网最后更新 2026年11月02日springBoot @Scheduled如何实现多个任务同时开始执行
springBoot @Scheduled如何实现多个任务同时开始执行,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
@Scheduled多个任务同时开始执行
只需在springBoot启动类上添加
如下代码即可:
@Bean public TaskScheduler taskScheduler() { ThreadPoolTaskScheduler taskExecutor = new ThreadPoolTaskScheduler(); taskExecutor.setPoolSize(50); return taskExecutor; }
@Scheduled多定时任务,重叠执行
@Scheduled如果有两个定时任务
定时任务重复时,只有一个可以执行。
如下
import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component; import java.time.LocalDateTime; @Componentpublic class MyScheduled { @Scheduled(cron = "0/5 * * * * ?") public void execute1(){ String curName = Thread.currentThread().getName() ; System.out.println("当前时间:"+LocalDateTime.now()+" 任务execute1对应的线程名: "+curName); try { Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } } @Scheduled(cron = "0/5 * * * * ?") public void execute2(){ String curName = Thread.currentThread().getName() ; System.out.println("当前时间:"+LocalDateTime.now()+" 任务execute2对应的线程名: "+curName); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } }}通过执行可以看到,打印线程名称为同一个。即如果不手动指定线程池,则默认启动单线程,进行执行定时任务。
如果想要多个定时任务重叠执行
需要手动指定线程池,如下
import org.springframework.context.annotation.Bean;import org.springframework.scheduling.TaskScheduler;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;import org.springframework.stereotype.Component; import java.time.LocalDateTime; @Component@EnableSchedulingpublic class MyScheduled { @Bean public TaskScheduler taskScheduler() { ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.setPoolSize(50); return taskScheduler; } @Scheduled(cron = "0/5 * * * * ?") public void execute1(){ String curName = Thread.currentThread().getName() ; System.out.println("当前时间:"+LocalDateTime.now()+" 任务execute1对应的线程名: "+curName); try { Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } } @Scheduled(cron = "0/5 * * * * ?") public void execute2(){ String curName = Thread.currentThread().getName() ; System.out.println("当前时间:"+LocalDateTime.now()+" 任务execute2对应的线程名: "+curName); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } }}此时,多个定时任务,是不通的线程执行,同时,定时任务可以重叠执行。
关于springBoot @Scheduled如何实现多个任务同时开始执行问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
任务
线程
多个
同时
时间
问题
手动
更多
帮助
解答
易行
简单易行
两个
代码
内容
只有
只需
名称
小伙
小伙伴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州紫鲸互联网科技有限公司
中国互联网科技工作委员会毛军
互联网最新的科技
互联网科技战争
互联网养老 桔豆科技
港股科技和互联网
青岛科技大学互联网大赛研究生
坤平互联网科技
乌苏新华互联网科技做什么的
科技大学互联网
卓翼科技产业互联网合作
广州燕处互联网科技有限公司
广州梦谷互联网科技有限公司领导
版纳互联网科技选哪家
求路客互联网科技电话
互联网科技和医药行业
互联网科技对化妆品行业
上海互联网科技园景观
互联网科技创新方面的资料
武汉亿视互联网科技有限公司
精品咖啡豆
中关村互联网 科技集团
鸠鸠互联网科技
奔汉互联网科技
互联网金融和金融科技
互联网科技寓意
天津腾达互联网科技有限公司
电子商务与互联网科技的关系
北京军民互联网科技公司
三亚科技创新互联网基地