XXL-JOB是一个分布式任务调度平台,以下是其基本的使用方法
XXL-JOB是一个轻量级、高效且易于使用的分布式任务调度框架,它由大众点评的许雪里(XXL)开源,旨在解决分布式环境下定时任务的执行难题。以下是XXL-JOB的一些核心特性和应用场景的详细介绍:
1.基本介绍
XXL-JOB起源于大众点评内部的分布式任务调度需求,自2016年起开始接入线上产品线,至今已迭代数十个版本,广泛应用于互联网、金融、教育、物流等多个行业。其核心设计目标是“开发迅速、学习简单、轻量级、易扩展”,并且提供开箱即用的体验。
功能特性
- 简单易用:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手。
- 动态管理:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效。
- 调度中心HA:调度采用中心式设计,支持集群部署,可保证调度中心的高可用性。
- 执行器HA:任务分布式执行,支持集群部署,可保证任务执行的高可用性。
- 注册中心:执行器会周期性自动注册任务,调度中心将自动发现注册的任务并触发执行。
- 弹性扩容缩容:一旦有新执行器机器上线或下线,下次调度时将会重新分配任务。
- 路由策略:执行器集群部署时提供丰富的路由策略,包括第一个、最后一个、轮询、随机等。
- 故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动Failover切换到一台正常的执行器发送调度请求。
- 阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括单机串行、丢弃后续调度、覆盖之前调度。
- 任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务。
- 任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试。
- 任务失败告警:默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式。
- 分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务。
- 动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理。
架构与组件
XXL-JOB由两个核心组件构成:调度中心和执行器。调度中心负责维护调度信息并按照预设策略触发任务调度请求,而执行器则负责接收调度请求并执行具体的任务逻辑。此外,数据库用于存储任务配置、执行日志、调度记录等数据,保证调度中心与执行器之间的信息同步。
使用教程
XXL-JOB的使用涉及到环境准备、数据库初始化、配置调度中心与执行器、创建任务等步骤。用户可以通过Web界面进行任务的增删改查操作,并支持多种调度类型(如cron、固定频率、手动触发等)。
XXL-JOB以其轻量级、易扩展和开箱即用的特点,成为了许多公司分布式任务调度的首选解决方案。
2.下载和导入项目
从XXL-JOB的官方Gitee仓库下载项目(https://gitee.com/xuxueli0323/xxl-job),解压后使用IDE导入项目并下载依赖
3.新建数据库和运行SQL
在MySQL中新建数据库,运行项目中doc/db目录下的tables_xxl_job.sql文件以创建所需的表
4.配置和运行调度中心(xxl-job-admin):
在xxl-job-admin模块的application.properties文件中配置数据库和其他相关参数,如时区属性防止乱码
。
启动XxlJobAdminApplication类,访问 http://localhost:8080/xxl-job-admin, 默认账户为admin,密码123456
5.运行项目
访问:http://127.0.0.1:8090/xxl-job-admin/
6.配置执行器:
在XXL-JOB管理界面的“执行器管理”中新增执行器,配置AppName、IP和端口等信息
这样,你的xxljob便完成配置和运行起来了
7.新增你自己的调度任务
以上步骤涵盖了XXL-JOB从搭建环境到任务调度的整个流程。更多详细信息和高级配置可以查阅XXL-JOB的官方文档。