乐趣区

关于java:刚出炉热腾腾的定时任务可视化管理系统

定时工作也算是咱们日常开发中比拟常见的需要了,市面上也有很多成熟的框架:

  • quartz
  • elastic-job
  • xxl-job

不过小伙伴们晓得,其实咱们 Spring 框架中也提供了相应的定时工作,这个定时工作通过 @EnableScheduling 注解开启,松哥之前也写过文章和大家分享这个注解的根本用法:

  • Spring Boot 中实现定时工作的两种形式!

不过之前的定时工作都是固定的,提前写死的,没法动静配置,前两天有小伙伴问松哥如何实现定时工作的动静配置?

这个货色要是基于 xxl-job 之类的框架来做其实是比拟容易的,不过用 Spring 自带的 @EnableScheduling 注解其实也能实现,而且并不难,松哥基于此火急火燎的写了一个,明天先和大家聊聊大抵用法,前面抽空再写一篇文章介绍实现原理。

我的项目已开源,我的项目地址:

  • https://github.com/lenve/scheduling

食用形式

  1. 克隆我的项目:git clone https://github.com/lenve/scheduling.git
  2. 本地数据库创立一个名为 scheduling 的库。
  3. 批改配置文件 src/main/resources/application.yaml,次要批改数据库连贯的用户名和地址。
  4. 启动我的项目。
  5. 浏览器拜访 http://localhost:8080,能够看到如下页面:

示意启动胜利。

性能介绍

  1. 我的项目启动时,会主动从数据库中加载状态为 1 的定时工作并开始执行,1 示意处于开启状态的定时工作,0 示意处于禁用状态的定时工作。
  2. 点击页面上的 增加作业 按钮,能够增加一个新的定时工作,新工作的 Bean 名称、办法名称以及办法参数如果和已有的记录雷同,则认为是反复作业,反复作业会增加失败。

增加作业的页面如下:

这里波及到几个参数,含意如下:

  • Bean 名称:这是我的项目中注入 Spring 的 Bean 名称,测试代码中以 org/javaboy/scheduling02/service/SchedulingTaskDemo.java 为例。
  • 办法名称:参数 1 中 bean 里边的办法名称。
  • 办法参数:参数 2 中办法的参数。
  • Cron 表达式:定时工作的 Cron 表达式。
  • 作业状态:开启和禁用两种。开启的话,增加实现后这个定时工作就会开始执行,禁用的话,就单纯只是将记录增加到数据库中。

作业增加胜利提醒如下:

作业增加失败提醒如下:

  1. 点击作业编辑,能够批改作业的各项数据:

批改后会立马失效。

  1. 点击作业删除,能够删除一个现有的作业。如果删除的作业正在执行,则先进行该作业,而后删除。
  2. 点击列表中的 switch 按钮也能够切换作业的状态。

技术栈

  • SpringBoot
  • Jpa
  • MySQL
  • Spring Job
  • Vue

其余

这是一个学习的 Demo,并非残缺我的项目,前面松哥会出一篇文章和大家分享具体的实现思路。

好啦,先说这么多。

感兴趣的小伙伴连忙去体验一把吧:

  • https://github.com/lenve/scheduling
  • https://gitee.com/lenve/scheduling
退出移动版