分布式任务调度系统
项目搭建
主要集成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接口调用
添加任务,修改任务,暂停任务,开启任务以及列出所有任务
预先在数据库中存数据
启动项目见日志