当前位置: 首页 > 后端技术 > Java

刚刚上线的定时任务可视化管理系统

时间:2023-04-01 20:35:04 Java

定时任务是我们日常开发中比较常见的需求。市面上也有很多成熟的框架:quartzelastic-jobxxl-job...但是小伙伴们知道,其实我们在Spring框架中也提供了相应的定时任务。这个定时任务是通过@EnableScheduling注解开启的。宋大哥也写了一篇文章分享这个注解的基本用法:SpringBoot实现定时任务的两种方式!但是之前的定时任务是固定的,提前硬编码的,不能动态配置。前两天有朋友问松哥定时任务的动态配置是怎么实现的?基于xxl-job这样的框架做这件事情其实还是比较容易的,但是其实用Spring自带的@EnableScheduling注解就可以实现,而且也不难。松哥就是基于这个写了一篇,今天开始给大家讲讲大概的用法,然后抽空写一篇文章介绍一下实现原理。项目已经开源,项目地址:https://github.com/lenve/scheduling吃法克隆项目:gitclonehttps://github.com/lenve/scheduling.git。本地数据库创建一个名为调度的库。修改配置文件src/main/resources/application.yaml,主要修改数据库连接的用户名和地址。启动项目。用浏览器访问http://localhost:8080,可以看到如下页面:表示启动成功。功能介绍项目启动时,会自动从数据库中加载状态为1的定时任务并开始执行。1表示启用定时任务,0表示禁用定时任务。单击页面上的添加作业按钮以添加新的计划任务。如果新任务的Bean名、方法名、方法参数与已有记录相同,则视为重复作业,重复作业将添加失败。添加作业页面如下:这里涉及到的几个参数,含义如下:Bean名称:这个是项目中注入Spring的Bean的名称,测试代码取org/javaboy/scheduling02/service/SchedulingTaskDemo.java为例。方法名:参数1中bean内部的方法名。方法参数:参数2中方法的参数。Cron表达式:定时任务的Cron表达式。作业状态:启用和禁用。如果开启,定时任务会在添加完成后开始执行。如果它被禁用,它只会将记录添加到数据库中。添加作业成功的提示如下:添加作业失败的提示如下:点击作业编辑修改作业的各项数据:修改后立即生效。单击作业删除以删除现有作业。如果删除的作业正在执行,请先停止该作业,然后再将其删除。单击列表中的切换按钮也可以切换作业的状态。技术栈SpringBootJpaMySQLSpringJobVueOthers这是一个学习demo,不是一个完整的项目。稍后宋兄会出文与大家分享具体的实现思路。好了,说了这么多。感兴趣的朋友赶紧体验一下:https://github.com/lenve/schedulinghttps://gitee.com/lenve/scheduling