当前位置: 首页 > news >正文

springboot中多个定时任务(@Scheduled)如何互不影响

现象

在springboot中,添加 多个 @Scheduled(cron = “0 10 7 * * ?”) 注解,例如:
@Scheduled(cron = “0 10 5 * * ?”)
@Scheduled(cron = “0 10 6 * * ?”)
@Scheduled(cron = “0 10 7 * * ?”)
在执行时发现,如果6点10分的任务到了7点10分,还没完成,那7点10分的任务不会正常开始执行,要等6点10分的任务接收后,7点10分的任务才会开始执行。
在我的程序中,几个定时任务之间没有依赖关系,所以我不想等待6点10分的任务,到了7点10分正常开始执行就行,该怎么做呢

原因

在 Spring Boot 中,默认情况下,@Scheduled 任务使用的是 单线程的 TaskScheduler,这意味着:

  • 所有定时任务会串行执行(一个任务执行完,才会执行下一个)。
  • 如果某个任务执行时间过长或阻塞,后续任务会被延迟,甚至“堆积”无法执行。

解决方案

配置多线程任务调度

import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;@Configuration
public class SchedulerConfig implements SchedulingConfigurer {@Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();taskScheduler.setPoolSize(5); // 设置线程池大小(根据任务数量调整)taskScheduler.setThreadNamePrefix("scheduled-task-");taskScheduler.initialize();taskRegistrar.setTaskScheduler(taskScheduler);}
}

效果

  • 每个 @Scheduled 任务会分配独立的线程执行,互不阻塞。
  • 适用于 任务之间无依赖关系 的场景。
http://www.lryc.cn/news/578252.html

相关文章:

  • 大数据(4)-spark
  • Webpack优化详解
  • Unity性能优化-渲染模块(1)-CPU侧(2)-DrawCall优化(2)GPUInstancing
  • 浪潮和曙光服务器的ipmi配置教程
  • 图灵完备之路(数电学习三分钟)----开关与延迟线
  • Ubuntu更换Home目录所在硬盘的过程
  • Pyhton-EXCEL与Mysql数据对比
  • 从设计到开发一个小程序页面
  • 鸿蒙NEXT-鸿蒙三层架构搭建,嵌入HMRouter,实现便捷跳转,新手攻略。(2/3)
  • HTML之常用基础标签
  • JavaScript异步编程的五种方式
  • 力扣 hot100 Day30
  • Spring生态:云原生与AI的革新突破
  • 七天学会SpringCloud分布式微服务——06——Sentinel
  • 从零到一通过Web技术开发一个五子棋
  • CSDN博客大搬家(本地下载markdown合适和图片本地化)
  • Stable Diffusion 项目实战落地:从0到1 掌握ControlNet 第四篇 风格化字体大揭秘:从线稿到涂鸦,ControlNet让文字焕发新生
  • 【机器人】复现 HOV-SG 机器人导航 | 分层 开放词汇 | 3D 场景图
  • 文心大模型正式开源,开启AI普惠新时代
  • vue上传各种文件,并预览组件,(预览,下载),下载resources目录下文件
  • 云上攻防—Docker安全容器逃逸特权模式危险挂载
  • 计算机网络(一)层
  • 3.前端和后端参数不一致,后端接不到数据的解决方案
  • 基于C#的OPCServer应用开发,引用WtOPCSvr.dll
  • 中钧科技亮相2025 亚欧商品贸易博览会,赋能数字经济新未来!
  • C#索引和范围:简化集合访问的现代特性详解
  • 2025年 UI 自动化框架使用排行
  • 深度模型结构选择和应用分析
  • 多重性校正:临床试验统计的关键防线
  • 自由学习记录(65)