一:项目结构:
解释说明:
lts:管理 子包的jar 包的xml 的项目
lts-admin : 界面管理,有个问题是通过脚本启动是空白,必须通过容器来启动了
lts-core: 主要是netty 交互核心代码,zookerr 订阅中心
lts-jobclient: 反馈的客户端
lts-jobtracker: 派遣分布式的任务
lts-monitor:监控自身应用的jvm
lts-spring : lts 和spring 结合的
lts-startup:bat 就是通过这个startup 启动类来做的
zoo 里面的配置是给jobtracker 使用的,外面的是给lts-admin 配置文件使用的。两套数据库连接都要改掉。
lts-tasktracker: 客户端接受任务需要引入的jar包。
总结:服务端需要部署的主要是lts-admin,lts-jobtracker,lts-jobclient
lts-admin:已经有war包,导入到tomcat 启动就行了
lts-jobtracker和lts-jobclient: example 有例子使用springboot的版本
业务系统:自身引入tasktracker的jar 包加入注解来调用任务:
二:源码分析:
1 添加cron 任务流程源码分析:
以mysql为例子,对于一个节点组nodeGroup的cron形式的定时任务的定时调度涉及三张表。
lts_cron_job_queue表用来存放jobTracker中收到的cron任务提交信息,cron任务的配置数据存放在这张表中。
而lts_wjq_ + nodeGroup名,则表示当前已经存放在数据