前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot 动态定时任务

springboot 动态定时任务

作者头像
分享干货的你
发布2021-04-06 16:58:23
1.4K1
发布2021-04-06 16:58:23
举报
文章被收录于专栏:分享干货的你

最近在使用springboot的定时任务,一般都是基于注解的。 但是这种方式不够灵活, 不是动态的。 要是修改定时任务的话还要重启服务。很麻烦, 但是有没有一种可能,来实现动态的定时任务呢。 我们首先看一下Scheduling 的核心类, 这是核心类的配置。

我们看到他是一个funcation ,是一个函数式的编程 ,里面有一个task的方法, 里面是一个定时任务的注册器。 我们点击进去看一下源码

我们要添加一个一个自己的触发Task.

设计思路, 设计数据库 存放task 的Name, crom表达式,是否启用,

写一个task的抽象类, 实现runnAble , 在子类run 方法写自己的定时的业务代码, 里面还有一个抽象的taskName 的方法。

数据库的操作使用jpa

具体代码

这里面taskName 我写死了

类task1

类Task2

核心的Schedule的配置类

数据库的数据

这里taskName 要做唯一性约束,taskName 加唯一性约束就行,切不能为null.

这里task1 是2秒执行一次, task2 20秒执行一下。 我们先启动

以下看一下控制台日志

然后我们收到改一下,让他俩兑换一下再看一下控制台日志

我们看task2 已经变成2秒一次了,task1

和上一次的20秒之间相差20秒,这也生效了,完美。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 分享干货的你 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档