1. 我理解的执行器注册流程
不难理解执行器和调度器维持着netty实现的长链接,猜测建立长链接以后执行器充当客户端去发送一个request,把自己的配置的xxl.job.admin.addresses写到并更新到xxl_job_registry
事实也是如此
2. 分析执行器的注册流程-执行器部分
入口:执行器惟一的入口
XxlJobConfig,从这个地方进去发现initEmbedServer(address, ip, port, appname, accessToken);这个就是初始化长链接的代码,初始化长链接以后,startRegistry(appname, address);就是执行器去注册的代码
2.1 startRegistry(appname, address)分析
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 调度端建立长链接之前就准备好这些资源了
3. 分析执行器的注册流程-调度器部分
就是我们调度器的controller