xxl-job学习笔记(一)

elastic-job与 xxx-job对比: 分布式定时任务调度系统技术选型
xxx-job:美团点评许雪里:分布式任务调度平台 XXL-JOB
官方文档:官方文档
数据库锁实现Quartz分布式:利用数据库锁实现Quartz分布式调度

触发规则:
现在提供的触发规则主要有 3 种。第一种是 Cron 表达式,每一个任务需要配一个 Cron 表达式。第二种是任务依赖,你可以为每一个任务配置一个子任务,当副任务执行完成之后,可以触发子任务,这样关联的方式进行触发执行。第三种就是事件触发,其实就是类似于 Mq 的场景,代码里面有一个业务逻辑,触发了一个任务执行。

xxl-job 特点

(一)HA/集群
(二)弹性扩容
(三)执行器路由策略
(四)故障转移 & 忙碌转移
(五)分片任务 & 动态分片
(六)阻塞策略 & 失败处理策略
(七)触发规则
(八)任务模式

xxl-job源码结构

1. admin模块

  • com.xxl.job.admin.controller 调度中心springMVC接口
  • com.xxl.job.admin.core
    • conf
      • XxlJobAdminConfig 调度中心配置
      • XxlJobScheduler
    • cron
      • CronExpression(Borrowed from quartz v2.3.1)
    • model
      • XxlJobGroup 执行器集群,appName对应一条业务线
      • XxlJobInfo 任务调度信息
      • XxlJobLog 任务调度日志
      • XxlJobLogGlue 任务调度日志,GLUE 模式
      • XxlJobRegistry 任务调度注册记录
      • XxlJobUser 任务管理员
    • route
      • strategy(路由策略实现类目录)
      • ExecutorRouter(路由策略抽象类)
      • ExecutorRouteStrategyEnum 执行器路由策略
    • thread
      • JobFailMonitorHelper 失败报警处理器
      • JobRegistryMonitorHelper 注册中心
      • JobScheduleHelper
      • JobTriggerPoolHelper 触发调度线程池
    • trigger
      • XxlJobTrigger 任务调度触发器
      • TriggerTypeEnum 触发类型规则
    • dao 调度操作Mybatis接口目录
    • service
      • impl
        • AdminBizImpl 调度中心提供给执行器的API服务
        • XxlJobServiceImpl 任务调度service实现类
      • XxlJobService 任务调度service接口

2. core模块

  • com.xxl.job.core
    • biz
      • impl
        • ExecutorBizImpl 执行器API服务
      • model
        • HandleCallbackParam 处理回调(日志id,日志时间,执行返回结果)
        • LogResult 日志结果(起始行,终止行,日志内容,是否结束)
        • RegistryParam 注册参数(注册组,注册键,注册值)
        • ReturnT 返回结果封装(code代码,msg信息,内容)
        • TriggerParam 触发参数(作业id,执行处理器,执行参数,执行阻塞策略,执行超时,日志id,日志时间,,,,广播索引,广播全部)
      • AdminBiz 调度中心提供给执行器的API服务
      • ExecutorBiz 执行器API服务
    • enums
      • ExecutorBlockStrategyEnum 阻塞策略 & 失败处理策略
      • RegistryConfig 注册配置,心跳时间,死亡时间,注册类型(执行器、调度中心)
    • executor
      • impl
        • XxlJobSpringExecutor
      • XxlJobExecutor 执行器
    • handler
      • impl
        • GlueJobHandler
      • IJobHandler 执行器
    • thread
      • ExecutorRegistryThread 执行器注册线程
      • JobLogFileCleanThread 日志文件清理线程
      • JobThread 作业线程(作业id,作业处理器,触发器队列,触发器日志id集合)
      • TriggerCallbackThread 初始化触发回调线程

3. executor模块

com.xxl.job.executor.service.jobhandler

  • HttpJobHandler 跨平台Http任务
  • ShardingJobHandler 分片广播任务
  • DemoJobHandler 任务Handler示例(Bean模式)

你可能感兴趣的:(中间件,xxl-job源码学习)