分布式任务调度系统

项目搭建

主要集成springboot+quartz+mysql

因为springboot搭建比较简单添加@EnableScheduling注解即可,其他的按照quartz和spring的正常整合即可

另外quartz本身支持持久化,那种的话运行时数据都可以进行保存,但是由于这次的个人的基于自己的想法来实现调度系统,所以不适用那种。(持久话实现可以参考 https://blog.****.net/u012768459/article/details/73826189

 

任务的实体对象

主要包括用于quarzt的name和group,以及type用于区分是本地任务还是远程任务

本地任务则用className,远程任务则用url

分布式任务调度系统

 

 

配置数据库刷新任务

主要是查询数据库全部的任务,然后根据scheduler中是否存在该任务判断是添加还是修改数据

如果是scheduler中不存在则添加到定时i任务,否则去修改

修改的话根据时间表达式是否有变化话,或者是远程任务的话就修改url(本地任务因为肯定要重新打包,所以不提供运行时的修改)

 

分布式任务调度系统

 

简单提供rest api接口调用

添加任务,修改任务,暂停任务,开启任务以及列出所有任务

分布式任务调度系统

预先在数据库中存数据

分布式任务调度系统

 

启动项目见日志

分布式任务调度系统

 

 

 

项目的地址 https://github.com/cdy1996/job