XXL-Job入门

XXL-Job入门

背景

以前定时任务都是镶嵌在项目本身,例如 timer ,spring task,但是xxl-job 能将定时任务从项目中解耦出来,也是十分不错的。

链接

[https://github.com/xuxueli/xxl-job/]
根据官方文档已经很详细的讲解了使用方法,我这里就不多解析,直接撸源码 。

源码详解

我这里是使用1.2.0的Xxl-job
执行器入口:
com.xxl.job.core.executor.impl.XxlJobSpringExecutor在这里插入图片描述 com.xxl.job.core.executor.impl.XxlJobSpringExecutor.initJobHandlerRepository :

  1. 扫描com.xxl.job.core.handler.annotation.JobHandler 注解将 handler放入java内存
  2. 初始化 GlueFactory,这里没用到,不做深究。
  3. super.start() ;

com.xxl.job.core.executor.XxlJobExecutor.start()在这里插入图片描述
4. 如注释所写的一样: 初始化日志路径。
5. 反推处理器回去xxl-admin,让管理后台知道处理器已经起来了(重点,涉及到远程调用,xxl-job的核心,个人认为 com.xxl.job.core.executor.XxlJobExecutor.initAdminBizList(String, String) )
6. 初始化清除日志线程
7. 初始化回调写日志线程

com.xxl.job.core.executor.XxlJobExecutor.initAdminBizList(String, String)
在这里插入图片描述
这里开始追查xxl-job 如何回调xxl-admin的:核心类 com.xxl.job.core.biz.AdminBiz
梳理下我们现在已有的远程调用条件:
1,xxl-admin的地址
2,端口号
3,调用url,现在我只能看见是 “/api”
4,token
5,通信技术 NETTY_HTTP
以经验来看已经足够远程调用条件了。rpc 远程调用需要接口的所有信息 , rest 远程调用只需要 url 就OK,说远了, 继续,然后把adminBiz加入adminBizList , 然后我们追着adminBizList 来看

全局变量 adminBizList 肯定有get 方法:com.xxl.job.core.executor.XxlJobExecutor.getAdminBizList()
看看哪里调用就OK
找到 3个地方
在这里插入图片描述
随便看一个 com.xxl.job.core.thread.ExecutorRegistryThread.start(String, String)
看这个:
在这里插入图片描述
这里直接跳了去xxl-admin的代码,但是别被它骗了。。
回去:com.xxl.job.core.executor.XxlJobExecutor.initAdminBizList(String, String) 看看在初始化 AdminBiz 做了什么:
com.xxl.rpc.remoting.invoker.reference.XxlRpcReferenceBean.XxlRpcReferenceBean(…)
在这里插入图片描述

总结
1,get object() 这个方法太长了,这里不多做解析了,结论就是 AdminBiz 是一个远程调用的代理对象。
2,已调用它就会调用xxl-admin里面的 com.xxl.job.admin.controller.JobApiController.api(HttpServletRequest, HttpServletResponse) 这个controller 方法
3. 感谢许里雪团队写出一个那么优秀的开源框架,最后祝大家码运昌隆…以后还会更新

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值