好的,我们已经跑过例子了,是时候撸源码了,这样可以对这个项目有一个全面的理解。
砍:
下载项目,然后一如既往,掏出你的大刀,砍。
不要觉得代码有多精贵,再好的架构过几年也是被砍的份儿。
这个项目里很多是我们不需要的,只需要你对它有个了解即可,给我砍。
每个目录浏览一遍,这里我砍得只剩quartz-core和distribution里的examples。
跑:
然后把examples里感兴趣的例子都跑一遍,丰富了对api实战的理解,到这里已经掌握单点到集群的使用能力了。
再砍:
现在我们已经了解了api,也知道我们需要的有哪些。开始砍quartz-core。
因为为了适配很多平台,项目充满了delegate,rmi等等。
认真开始:
砍完了以后,开始基于这个最小模块,添加功能。
作为一个新时代的服务,怎么也得高可用,可扩展,高性能,再来个开放监控,管理定时任务的UI。
我们以spirng-boot为基础,docker镜像部署,默认自带集群功能,自带actuator监控接口,自带管理接口CRUD JOB、trigger、scheduler,最后有时间再补个UI。
第二天了,算是把项目结构清理完了,明天正式阅读代码,quartz的作者也给大家起了个头QuartzSchedulerThread
原话:
If you're interested in the "behind the scenes" (server-side) code, you'll want to look at org.quartz.core.QuartzSchedulerThread, which will make you interested in org.quartz.spi.JobStore.java, org.quartz.spi.ThreadPool.java and org.quartz.core.JobRunShell.