首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >ruoyi-vue版本(七)定时任务 相关的源码解析,也就是ruoyi-quartz 模块的解析

ruoyi-vue版本(七)定时任务 相关的源码解析,也就是ruoyi-quartz 模块的解析

作者头像
一写代码就开心
发布2023-02-02 16:01:55
发布2023-02-02 16:01:55
10.6K0
举报
文章被收录于专栏:java和pythonjava和python

目录

1 需求

我们打开若依项目,看到页面上有一个定时任务模块

我们接下来就是解析若依项目和定时任务相关的所有的文件,以及他是如何实现定时的,背后的逻辑是什么,如果我想要在我自己的项目里面实现这个逻辑,那么我需要复制哪些文件,或者咋修改一下就可以在我自己的项目里面实现这个定时功能

2 解析

这个模块里面,就是和定时相关的所有的东西,我们就是要看这个里面是咋实现定时功能的

首先是实现定时功能,那么就得使用第三方的依赖,我们先看下pom文件里面引入了哪些第三方的依赖

这个模块只是引入了一个第三方的定时的jar包,我们的代码就是要使用这个jar包里面的一些api进行实现定时功能了。目前是已经引入人家都jar包了

这个定时功能是需要两个表

定时任务调度日志表 sys_job_log 定时任务调度表 sys_job

没错,若依项目就是靠这两个表实现了定时的功能

以下是表对应的实体类

我们从页面上面的操作开始解析对应操作的逻辑

2.1 工具类里面的关系

关于实现定时功能,其实就是使用反射的形式进行执行具体的方法,因为我们在新增任务的时候,已经将方法的绝对路径写上了,那么之后代码里面就是根据这个绝对路径,找到对应的方法,然后执行这个方法;使用反射执行方法

2.2 新增定时任务

新增的页面,写完对应的东西之后,就点击确定,就会保存定时任务

我们打开f12 ,看下新增会调用那个接口

在我们的代码里面,找到这个接口

这个接口是以实体类的形式进行接收的

传值是

我们进入实体类,看下每一个属性代表的意思

这个调用方法 的值是 类名.方法名

代码语言:javascript
复制
  /** 调用目标字符串   无参数 ryTask.ryNoParams    有参数 ryTask.ryParams('ry')
     * 多参数 ryTask.ryMultipleParams('ry', true, 2000L, 316.50D, 100) */
    @Excel(name = "调用目标字符串 -- 就是执行的方法名称")
    private String invokeTarget;
代码语言:javascript
复制
    /** cron计划策略 */
    @Excel(name = "计划策略 ", readConverterExp = "0=默认,1=立即触发执行,2=触发一次执行,3=不触发立即执行")
    private String misfirePolicy = ScheduleConstants.MISFIRE_DEFAULT;
   /** 是否并发执行(0允许 1禁止) */
    @Excel(name = "并发执行", readConverterExp = "0=允许,1=禁止")
    private String concurrent;

    /** 任务状态(0正常 1暂停) */
    @Excel(name = "任务状态", readConverterExp = "0=正常,1=暂停")
    private String status;

这个新增的逻辑里面,只是将任务的信息保存到数据库,还有将信息放到scheduler调度器对象里面;

2.3 回显定时任务

就是点击了修改按钮,弹出的框里面将 任务的信息进行展示

只是一个查询数据库,进行展示,没有逻辑

2.4 修改定时任务

就是点击修改按钮,根据任务ID 更新数据库的信息;

还有scheduler调度器对象里面任务信息更新;

3 总结

springboot启动后scheduler实例会自动start

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 1 需求
  • 2 解析
    • 2.1 工具类里面的关系
    • 2.2 新增定时任务
    • 2.3 回显定时任务
    • 2.4 修改定时任务
  • 3 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档