XXL-JOB

一、什么是XXL-JOB?

XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

二、Java主流三大定时器技术选型

选型时原则:少服务器 后期维护方便 增加任务省事而且快捷 不涉及启停服务

1、Quartz

优点:支持集群部署

缺点:没有自带的管理界面;调度逻辑和执行任务耦合在一起;维护需要重启服务

总结:针对目前项目情况,利弊相同

2、xxl-job

优点:支持集群部署;提供运维界面维护成本小;自带错误预警;相对elastic-job来说不需要额外的组件(zookeeper);支持调度策略;支持分片;文档齐全

缺点:相对Quartz来说需要多部署调度中心

总结:针对目前项目情况,利大于弊

3、elastic-job

优点:支持集群部署;维护成本小

缺点:elastic-job需要zookeeper,zookeeper集群高可用至少需要三台服务器

总结:针对目前项目情况,弊大于利

小结:综合选型原则及三个定时任务框架的优缺点和目前项目的状况,建议选用xxl-job。

三、XXL-JOB的一些特性:

  • 1、执行失败可以查看日志

  • 2、支持邮件报警

  • 3、路由策略支持轮询等策略,可以减轻执行服务器的压力

  • 4、轮询时间等参数修改后立即生效

  • 5、执行器有问题或新增,快速识别

  • 6、调度中心高可用,调度中心可以集群部署(集群部署的机器时钟必须同步),如果调度中心没有做负载在执行器的配置中需要配多个地址,如果调度中心配置负载则执行器配置负载地址即可

  • 7、执行器高可用(执行器可以集群部署)

06-18
### XXL-Job 分布式任务调度平台使用指南 XXL-JOB 是一个轻量级的分布式任务调度框架,由大众点评员工徐雪里于2015年发布[^1]。其核心设计目标是开发迅速、学习简单、轻量级和易扩展。以下是关于 XXL-JOB 的安装、配置及使用方法的详细指南。 --- #### 1. 下载与安装 XXL-JOB 提供了管理后台和执行器两个部分。需要分别下载并配置它们。 - **下载地址**: 官方地址为 [https://www.xuxueli.com/xxl-job/](https://www.xuxueli.com/xxl-job/)。 - **步骤**: - 下载 XXL-JOB 源码或二进制包。 - 确保本地已安装 JDK (推荐版本为 1.8 或以上) 和 Maven。 - 构建项目:运行以下命令以生成可执行文件。 ```bash mvn clean install -DskipTests ``` --- #### 2. 数据库配置 XXL-JOB 使用数据库存储任务信息和其他元数据。需要手动创建数据库并初始化表结构。 - **数据库初始化**: - 在官方文档中提供了 SQL 脚本,用于创建所需的表结构。 - 将脚本导入到 MySQL 数据库中。 - **修改配置文件**: - 编辑 `admin` 模块中的 `application.properties` 文件,设置数据库连接信息。 ```properties spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=123456 ``` --- #### 3. 配置 Admin 管理后台 Admin 是 XXL-JOB 的管理界面,负责任务的调度和监控。 - **启动 Admin**: - 进入 `xxl-job-admin` 目录,运行以下命令启动服务: ```bash java -jar xxl-job-admin.jar ``` - 默认访问地址为 `http://localhost:8080`,登录用户名为 `admin`,密码为 `123456`。 --- #### 4. 配置执行器 执行器是实际运行任务的模块,需要与 Admin 进行通信。 - **添加依赖**: 在项目的 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.3.0</version> </dependency> ``` - **配置执行器**: 编辑 `application.yml` 文件,配置执行器相关信息: ```yaml xxl: job: admin: addresses: http://127.0.0.1:8080/xxl-job-admin executor: appname: demoExecutor ip: port: 9999 logpath: ./jobhandler.log logretentiondays: 30 ``` - **编写任务代码**: 创建一个任务类,并实现 `IJobHandler` 接口: ```java import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.annotation.XxlJob; @XxlJob("demoJobHandler") public class DemoJobHandler extends IJobHandler { @Override public void execute() throws Exception { System.out.println("任务执行成功!"); } } ``` --- #### 5. 创建与运行任务 在 Admin 管理后台中创建任务,并绑定到对应的执行器。 - **任务类型**: 支持多种任务类型,包括 Cron 表达式、固定延迟、固定频率等。 - **Cron 表达式**: Cron 表达式用于定义任务的执行时间规则。例如,`0 0/1 * * * ?` 表示每分钟执行一次[^2]。 --- #### 6. 原理概述 XXL-JOB 的核心原理基于 Zookeeper 和 Quartz,支持分布式环境下的任务调度[^4]。主要特点包括: - **高可用性**: 支持多节点部署,确保任务不因单点故障而中断。 - **弹性扩容**: 动态调整执行器数量以适应任务负载变化。 - **失效转移**: 当某个执行器不可用时,任务会自动转移到其他可用执行器上。 --- #### 7. 其他注意事项 - **日志管理**: 执行器的日志路径由 `logpath` 参数指定,默认保留 30 天。 - **权限控制**: Admin 提供用户角色管理功能,可根据需求分配不同权限。 - **监控与告警**: 支持通过邮件或其他方式发送任务执行状态的通知。 ---
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值