其实学到这里,源码结构和工作原理已经基本了解了,但这时候的项目还不符合我们自己的需求。
假设需求:
1. 自带分布式解决方案,例:启动多个节点,只有一个节点可以工作,已经有了
2. 自带监控接口,不能裸奔,例:spring-boot-actuator,待实现
3. 自带定时任务管理的接口,最好再有个UI,待实现
技术选型:
1. 分布式解决方案,以spring-boot为基础框架,默认mysql作为存储,这时候内存数据库已经帮不上忙了
2. 监控接口,以spring-boot-actuator为基础框架,暴露http api
3. 任务管理接口RESTFul,UI采用Ant Design
实现细节:
1. 安装mysql,导入tables_mysql_innodb.sql,利用examples13
或者按照QuartzDatabaseTestSupport里直接使用props来定制Scheduler的属性,copy AbstractSchedulerTest类,改名为MysqlScheduler,并将抽象方法实现为以下代码,即可测试。
protected Properties createSchedulerProperties(String name, int threadPoolSize) {
Properties properties = new Properties();
properties.put("org.quartz.scheduler.instan