您的位置:首页 > 数码常识数码常识

springboot动态创建定时任务(springboot定时任务手动调用)

2025-05-13人已围观

springboot动态创建定时任务(springboot定时任务手动调用)
  写在前面SpringBoot创建定时任务的方式很简单,主要有两种方式:一、基于注解的方式(@Scheduled)二、数据库动态配置。实际开发中,第一种需要在代码中写死表达式,如果修改起来,又得重启会显示很麻烦;所以我们往往会采取第二种方式,可以直接从数据库中读取定时任务的指定执行时间,无需重启。

  springboot定时任务手动调用写在前面

  下面就来介绍下这两种方式吧

  一、基于注解(@Scheduled)

  基于注解是一种静态的方式,只需要几行代码就可以搞定了

  添加一个配置类

  上面代码的cron表达式表示每5秒执行一次,可以通过这个网站(https://qqe2.com/cron)去生成要的cron表达式

  启动应用,控制台看效果

  这个方式的确很简单方便,但前面介绍也说到了,有个缺点就是当我们需要去修改定时任务的执行周期或者停止的时候,我们需要到代码层去修改,重启。

  二、数据库动态配置

  这里使用MySQL数据库

  1、表数据添加,资源配置

  1.1 添加表

  1.2 插入两条数据,job_key根据是完整的类名

  1.3 引入依赖

  1.4 配置application.yml

  2、疯狂贴代码

  2.1 创建定时任务线程池

  2.2 项目启动时初始化定时任务

  2.3 定时任务公共接口

  2.4 创建两个定时任务实现类

  2.5 定时任务管理接口

  2.6 定时任务管理实现类

  2.8 上面用到的获取Bean的工具类SpringContextUtil

  2.9 表操作对应的一些类

  Pojo

  ScheduledJobMapper

  ScheduledJobService

  2.10 修改定时任务的接口

  3、测试结果

  3.1 启动项目,看下定时任务的执行结果,控制台输出结果

  我们可以看到任务1是每5秒执行一次,任务2是12秒执行一次

  3.2 修改任务1的cron参数或者状态

  3.2.1 修改cron,执行周期改为20秒执行一次,状态不变

  再看控制台输出结果,任务2没变化,任务1由5秒一次变成了20秒一次了

  再看控制台输出结果,任务2没变化,任务1由5秒一次变成了20秒一次了

  3.2.1 修改状态

  第二种方式支持通过接口的方式去改动,并且不需要重启,当然啦,也可以直接在数据库中添加或修改数据后重启项目,配置更加灵活一点。

  如果是一个固定的需求,执行周期一定不会变的了,推荐还是第一种写法,毕竟简单嘛。

  上面就是小居数码小编今天给大家介绍的关于(springboot定时任务手动调用)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

  94%的朋友还想知道的:

  excel数据透视表怎么做图表(数据透视表做动态图)

  动态菜单怎么做的(如何制作动态菜单表格)

  springboot机制及原理(springbootstarter原理)

  小米造车最新动态2022(小米造车计划)



  152618
 

很赞哦! ()

随机图文