一、Xxljob是什么?
XXL-Job是一个分布式任务调度平台,用于管理和调度定时任务、周期性任务和分片任务。它提供了可视化的任务管理界面、分布式任务执行、任务调度监控等功能,可以帮助开发人员和运维人员更轻松地管理任务调度。
- XXL-Job的核心组件:
Admin: 任务管理后台,用于配置和管理任务。
Executor: 任务执行器,用于执行任务。可以有多个Executor节点,实现任务的分布式执行。
JobCore: 任务核心配置,包括任务的执行时间、执行器、调度策略等。
JobHandler: 任务处理器,实际执行任务的逻辑。
- 任务调度原理:
XXL-Job使用分布式调度策略来实现任务调度。任务在Admin配置后,被分配给Executor节点,Executor节点根据任务的调度策略和执行时间来执行任务。XXL-Job使用数据库来存储任务信息和执行日志,确保任务的可靠性和可恢复性。
执行流程图:
四、配置xxljob的步骤:
- 下载idea项目 xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
- 将项目克隆到idea
- 将该项目的sql导入数据库:
- 将新项目导入xxljob依赖和配置:
依赖:
<!--xxljob-core-->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.2.0</version>
</dependency>
配置:
xxl:
job:
admin:
# xxl-job-admin访问地址
addresses: http://127.0.0.1:9299/xxl-job-admin
executor:
# 管理平台新建执行器需要
appname: pull-alipay-order
# 执行器运行在本机
ip: localhost
# 执行在本机的端口
port: 9999
# 执行器的日志文件路径
logpath: d:\\logs\\XXLJOB-CLIENT
# 执行器日志存货天数
logretentiondays: 30
- 启动下载的xxljob项目:
- 新项目启动即可访问:
- 小结
应用场景:elasticSearch+mysql 定时报表 订单扫描 清理数据(日志文件等备份数据)备份数据(备份mysql数据)
核心优点:
重试机制 分布式友好 微服务框架下即便有多个实例,xxljob比起直接@schdueled能够保证定时任务的唯一性,定时任务不会同时触发
原理:"三器":调度器 执行器 任务器