分布式调度平台XXL-JOB源码分析-执行器端

XxlJobExecutorApplication为我们执行器的启动项,其中有个XxlJobConfig的配置项,发现其中有个属性为adminAddresses,这个就是我们调度中心的地址。
我们发现一个执行器端的关键Bean,XxlJobSpringExecutor,
声明了init方法为start,点进来,
它又实现了ApplicationContextAware接口,用来保存spring的上下文信息。
它还有个父类XxlJobExecutor,没有其他实现子类。
程序开始执行start方法,
 
第一步,调用了本类的私有方法,这个方法就是把JobHandler的实现类取出来,再调用registJobHandler(name, handler)进行注册。
registJobHandler的实现方法在父类中,很简单,维护了一个Map,估计后面进行任务的执行时会来这个map里面进行查询。
第二步,估计是初始化了Glue的执行器。
第三步,调用父类的start方法,大部分的业务逻辑都在这里。
 
1.日志处理器初始化
2.
3.任务日志清除
4.
5.启动另一个执行器的执行线程XxlRpcProviderFactory这个类是XXl其他的开源项目,自研RPC。
XxlRpcProviderFactory类
 
由上面的代码跟进来,发现这就是启动了一个以netty作为通讯模型、Hessian作为序列化方式的服务提供端。
ExecutorServiceRegistry作为注册器,先看看这个类。
 
处理请求的关键类,是ExecutorBizImpl,我们来看看它。

猜你喜欢

转载自www.cnblogs.com/jiangyang/p/11578066.html