执行器的注册流程分析

135 阅读1分钟

1. 我理解的执行器注册流程

不难理解执行器和调度器维持着netty实现的长链接,猜测建立长链接以后执行器充当客户端去发送一个request,把自己的配置的xxl.job.admin.addresses写到并更新到xxl_job_registry 事实也是如此

2. 分析执行器的注册流程-执行器部分

入口:执行器惟一的入口XxlJobConfig,从这个地方进去发现 initEmbedServer(address, ip, port, appname, accessToken); 这个就是初始化长链接的代码,初始化长链接以后,startRegistry(appname, address);就是执行器去注册的代码

image.png

2.1 startRegistry(appname, address)分析

image.png

image.png

ReturnT<String> registryResult = adminBiz.registry(registryParam);

成功的走到了调度器

public ReturnT<String> registry(RegistryParam registryParam) { return XxlJobRemotingUtil.postBody(addressUrl + "api/registry", accessToken, timeout, registryParam, String.class); }

adminBiz 是什么时候初始化的呢?

肯定在我连接netty 调度端建立长链接之前就准备好这些资源了

image.png

3. 分析执行器的注册流程-调度器部分

就是我们调度器的controller

image.png

image.png

image.png

4. 分析执行器的停止流程-调度器部分,去除执行器

image.png

image.png