码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • java 多个 @Scheduled定时器不执行


    项目背景:在项目中包含两个定时任务,配置信息如下:
    1、@Scheduled(initialDelay = 1,fixedDelay=10000)
    public voud aa(){}

    1、@Scheduled(initialDelay = 1,fixedDelay=10000)
    public voud bb(){}
    我们需要的都是项目启动后,同时调用执行aa 和bb 方法,我们发现只能执行其中一个!那么如何解决呢?

    原因是:@Scheduled注解会在默认情况下以单线程的方式执行定时任务。
    这个“单线程”指两个方面:

    如果一个定时任务执行时间大于其任务间隔时间,那么下一次将会等待上一次执行结束后再继续执行。
    如果多个定时任务在同一时刻执行,任务会依次执行。

    我们项目都是配置了initialDelay =1 ,Scheduled启动一个的时候,另外一个根本得不到执行!当然fixedDelay是可以正常按照执行间隔来执行的,就是首次执行收到影响!
    为了让@Scheduled效率更高,我们可以通过两种方法将定时任务变成多线程执行::

    方法1、在启动类中配置TaskScheduler线程池大小

    @Bean
    public TaskScheduler taskScheduler() {
    ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
    taskScheduler.setPoolSize(10);//不配置默认是1
    return taskScheduler;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    方法2、利用Spring提供的@Async注解和@EnableAsync注解

    @Component
    @EnableAsync
    public class TimedTask{
    @Async
    @Scheduled(initialDelay = 1,fixedDelay=10000)
    public void aa() {
    //执行你的业务逻辑
    }
    
    @Async
    @Scheduled(initialDelay = 1,fixedDelay=10000)
    public void bb() {
    //执行你的业务逻辑
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    871. 最低加油次数 : 简单优先队列(堆)贪心题
    JVM将初始和最大内存大小设置为相同值的好处
    【Java实验五】继承与多态
    利用指针找最大值
    vue - vue使用echarts实现中国地图和点击省份进行查看
    day41-网络编程03
    (STM32)从零开始的RT-Thread之旅--SPI驱动ST7735(4)使用LVGL
    一个基于Java线程池管理的开源框架Hippo4j实践
    Haskell 组合运算符
    经过CNN、LSTM训练、预测,数据集的数据为什么会被打乱?以及基于pytorch框架代码实现打乱后的恢复
  • 原文地址:https://blog.csdn.net/wujian_csdn_csdn/article/details/127650056
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号