项目搭建
主要集成springboot+quartz+mysql
因为springboot搭建比较简单添加@EnableScheduling注解即可,其他的按照quartz和spring的正常整合即可。
另外quartz本身支持持久化和集群部署,需要配置相应的文件和建立官方指定数据库表(具体参考https://blog.csdn.net/u012768459/article/details/73826189),不过本次只是单个项目的演示,所以不加入quartz的集群功能。
任务的实体对象
主要包括用于quarzt的name和group,以及type用于区分是本地任务还是远程任务
本地任务则用className,远程任务则用url
配置数据库刷新任务
主要是查询数据库全部的任务,然后根据scheduler中是否存在该任务判断是添加还是修改数据
如果是scheduler中不存在则添加到定时i任务,否则去修改
修改的话根据时间表达式是否有变化话,或者是远程任务的话就修改url(本地任务因为肯定要重新打包,所以不提供运行时的修改)
简单提供rest api接口调用
添加任务,修改任务,暂停任务,开启任务以及列出所有任务
预先在数据库中存数据
启动项目见日志