springBoot @Scheduled如何实现多个任务同时开始执行
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,springBoot @Scheduled如何实现多个任务同时开始执行,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。@Schedul
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
根据数据库添加重复值
中国项目管理软件开发公司
外国数据库的中国进军之路
光功率计软件开发
杭州联想服务器供应商
数据库 epub
网络安全的征文三年级
在线网络技术的就业前景
天津智慧土地资产管理软件开发
高管的网络安全意识
服务器安装虚拟机有什么好处
服务器打开本地防护安全策略
数据库双层表有好处吗
网络安全文明上网文字素材
软件开发项目经理培训内容
frm数据库打开
php连接数据库获取信息
网络安全装置品牌
yog数据库管理工具
pb弄的数据库怎么保存
什么是软件开发能力
怀旧服永久60级服务器哪几个
网络安全国产化
莆田网络安全工程
中科院重大专项网络安全
联通的服务器ip
这两年数据库工程师的行情
数据库导入之后的表是乱码
阿里云服务器连接外网
vb删除不了数据库中的数据