努力的小胖学习记录(三)--xxl-job

  • 什么是XXL-JOB?
    XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速,学习简单,轻量级,易扩展,其是基于QUARTZ之上的又一层封装。
    该调度框架学习很简单,具体信息可查看官方文档,这里主要是对其启动流程进行分析。
  • 整体架构图
    来自xxl-job官方文档
    从架构图很容易看出,这个XXL-JOB要分为两部分:
  • 调度中心:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台,另外还提供了日志等其他辅助功能。
  • 执行器:负责接收“调度中心”的调度并执行,是核心业务的执行者,可直接部署单独的执行器,也可将执行器整合到现有项目。
  • 整个框架项目结构
    项目结构
    只需要把从github上拉下来的项目直接在本地部署就行,调度中心可以直接使用。
  • 启动流程分析
    调度中心
  1. 初始化SchedulerFactoryBean,这是spring对Quartz实现的一个封装,里面包含SchedulerFactory,DataSource,Excuotr,QuartzProperties,JobFactory等基础信息。
  2. 初始化XxlJobDynamicScheduler并调用他的初始化(start)方法,该方法完成的工作主要有这几部分
    调度中心启动时完成的工作
    这里有一点值得要说的是,最后的initRpcProvider是以controller方式暴露AdminBiz服务(task回调,注册执行器,移除执行器),具体实现可以看XxlRpcReferenceBean的getObject方法。
    执行器
    执行器的启动流程没什么,主要是看XxlJobSpringExcutor的start方法

    执行器启动时核心工作
    这里的initRpcProvider是真的以rpc的方式暴露服务(只暴露了ExecutorBiz),具体执行远程服务的流程是Server.handle()–>handlerWrap.handle()–>handleConnection.handle()–>ServerHandler.handle()–>XxlRpcProviderFactory.invokeService()–>ExecutorBiz.run()这里面涉及到了一些jetty的东西,暂时还没研究
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值