一、架构设计
xxl-job主要包含两部分,一是调度器,调度器需要独立部署;二是执行器,执行器作为maven依赖继承到我们的业务系统中,使用业务系统的资源做任务执行。
(未使用过的同学可以先看一下官方文档使用指南)
https://www.xuxueli.com/xxl-job/#5.3%20%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1
官方架构图如下:
二、目录结构
xxl-job目录下分了三个maven子项目:
子项目 | 说明 |
---|---|
xxl-job-admin | 调度器服务,需要独立部署 |
xxj-job-core | 执行器,同时含有一些调度器也需要的公共代码 |
xxl-job-executor-samples | 执行器的示例代码,模拟一个业务系统 |
xxl-job-admin目录结构
目录 | 说明 |
---|---|
core.alarm | 报警相关处理,默认实现了一个报警邮件发送 |
core.conf | 配置项 |
core.cron | 提供cron表达式的解析器 |
core.exception | 自定义异常类 |
core.model | domain |
core.old | 已被移除的一些历史实现 |
core.route | 执行器的路由策略 |
core.scheduler | 调度器的核心启动流程 |
core.thread | 调度器的各个守护线程 |
core.trigger | 调度器分发任务到执行器的trigger |
dao | 数据库操作 |
service | service层 |
controller | controller层及一些拦截器 |
xxl-core目录结构
目录 | 说明 |
---|---|
biz.client | 提供执行器与调度器互相调用的api相关的逻辑 |
biz.enums | 排队策略等枚举 |
biz.executor | 执行器启动主流程 |
biz.glue | 胶水代码相关 |
biz.handler | JobHandler相关 |
biz.log | log配置 |
biz.server | 执行器命令接收服务 |
biz.thread | 执行器端线程 |
目录部分大致了解,接下来我们先从调度器启动流程入手,逐步讲解。