xxl-job 代码走读
分布式调度是高可用的关键,因此特别做研究。国内众多公司采用xxl-job,也有采用quartz。
【xxl-job 代码走读】问题及分析
- 项目的核心是什么?
核心是分布式调度,分布式调度里核心是注册&分发 - 核心领域对象,辅助领域对象?
任务 、执行器 、调度中心 - 任务执行全流程示例?
核心功能是注册与执行。
注册过程:任务代码注入执行器,执行器http注册到调度中心。
执行过程:调度中心http发送任务给执行器,执行器执行任务。 - 怎么手动将任务注入到执行器?
- 编写任务类,在任务方法上增加xxlJob注解
- 生成执行器类对象
- 手动将任务类注入执行器JobBean列表
- 通过反射解析的任务类及任务方法的注解,生成jobHander,插入jobHandler字典
- 启动
- 怎么自动扫描并注入到执行器?
与手动的区别是,不需要显式的将任务类注入执行器jobBean列表,通过springContext找到所有带有xxlJob注解的类,后面步骤与手动注入相同 - 执行器启动过程?
使用netty搭建了一个http server. - 调度中心怎么触发任务?执行器执行任务?
执行器通过jobId获得JobThread,及JobThread中jobhandler
重新构造jobHandle,放入JobThread的队列,等待执行。 - 任务完成以后,执行器怎么通知调度中心
- 有哪些非功能特性,怎么实现?
推荐阅读
- CVE-2020-16898|CVE-2020-16898 TCP/IP远程代码执行漏洞
- 不废话,代码实践带你掌握|不废话,代码实践带你掌握 强缓存、协商缓存!
- 工具|后天就是七夕节,你准备好了吗(送上几个七夕代码,展示你技能的时候到了!)
- 《机器学习实战》高清中文版PDF英文版PDF+源代码下载
- 霍兰德职业代码对照表
- Hexo代码块前后空白行问题
- 前端代码|前端代码 返回顶部 backToTop
- 11-代码注入
- 代码不规范容易造成的bug
- 事件解绑与解绑的兼容代码