《深入理解XXL

您所在的位置:网站首页 hdfs分布式实现 《深入理解XXL

《深入理解XXL

2023-06-29 22:28| 来源: 网络整理| 查看: 265

目录 [XXL-Job的安装和配置] [下载安装包] [解压安装包] [创建数据库] [导入数据表] [修改配置文件] [启动调度中心和执行器] [XXL-Job的基本使用] [创建任务] [启动任务] [停止任务] [监控任务] [XXL-Job的高级使用] [使用调度中心] [分片广播] [任务路由] [XXL-Job的应用实例] [数据同步场景] [报表生成场景] [数据备份场景] [XXL-Job的扩展开发] [自定义任务处理器] [自定义触发器] [自定义报警] [XXL-Job的集成与部署] [集成到Spring Boot] [集成到Spring Cloud] [部署和管理]

XXL-Job是一款开源的分布式任务调度系统,可以实现任务的定时执行、分布式执行、任务调度监控等功能。下面是安装和配置XXL-Job的步骤:

下载安装包

从XXL-Job的官方网站(https://www.xuxueli.com/xxl-job/)下载最新版本的安装包。

解压安装包

在服务器上解压下载的压缩包,可以使用以下命令:

tar -zxvf xxl-job-2.x.x.tar.gz 创建数据库

XXL-Job需要使用MySQL数据库存储任务信息,需要先创建一个数据库。可以使用以下命令:

mysql -hlocalhost -uroot -p CREATE DATABASE xxl_job; 导入数据表

将XXL-Job安装包中的doc/db/tables_xxl_job.sql脚本导入到xxl_job数据库中,可以使用以下命令:

mysql -hlocalhost -uroot -p xxl_job < /path/to/tables_xxl_job.sql 修改配置文件

修改文件夹/conf下的xxl-job-admin.properties和xxl-job-executor.properties配置文件,分别配置调度中心和执行器的相关信息,包括数据库连接、端口号、日志路径等。

例如,修改xxl-job-admin.properties中的以下配置:

# xxl-job admin address list, such as "http://address1/xxl-job-admin,http://address2/xxl-job-admin" xxl.job.admin.addresses=http://localhost:8080/xxl-job-admin # xxl-job access token xxl.job.accessToken= # xxl-job executor registry name xxl.job.executor.appname=xxl-job-executor-sample # xxl-job executor address xxl.job.executor.address=http://localhost:9999/xxl-job-executor # xxl-job executor IP xxl.job.executor.ip= # xxl-job executor port xxl.job.executor.port=9999 # xxl-job executor log path xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler # xxl-job executor log retention days xxl.job.executor.logretentiondays=30 启动调度中心和执行器

在安装好XXL-Job并配置好相关信息后,可以通过以下命令启动调度中心和执行器:

sh bin/start.sh admin sh bin/start.sh executor 验证安装

在浏览器中访问http://localhost:8080/xxl-job-admin/,可以看到XXL-Job的调度中心界面,输入用户名和密码(默认为admin/123456)后登录。如果可以正常登录并显示调度中心页面,则表示XXL-Job已经安装成功。

配置执行器

在调度中心中添加执行器,点击左侧菜单中的执行器管理,然后点击新增按钮,填写执行器信息,例如:

执行器名称:xxl-job-executor-sample 执行器地址:http://localhost:9999/xxl-job-executor 执行器端口:9999 执行器日志路径:/data/applogs/xxl-job/jobhandler

点击保存后,执行器就可以被调度中心管理了。

测试任务

在调度中心中创建一个简单的任务,例如:

任务名称:testJob 任务描述:测试任务 任务路由策略:第一个 任务执行器:xxl-job-executor-sample 任务执行参数:{"name":"test"} Cron表达式:0/5 * * *2 * ? *

点击保存后,可以手动启动该任务,或者等待定时触发执行。

监控执行情况

在调度中心中可以查看任务的执行情况,包括执行次数、执行状态、执行日志等。可以通过左侧菜单中的任务监控、任务日志、报警记录等功能查看任务的详细信息。

高级使用

除了基本的任务调度功能外,XXL-Job还提供了一些高级功能,例如:

使用调度中心:可以将任务分发到多个执行器上执行,提高任务执行效率。 分片广播:将任务拆分成多个子任务并在多个执行器上并行执行,提高任务执行速度。 任务路由:根据任务的路由策略将任务分发到指定的执行器上执行。

这些高级功能可以通过调度中心的相关配置来实现。

应用实例

XXL-Job可以应用于多种场景,例如:

数据同步场景:可以定时同步数据到其他系统中。 报表生成场景:可以定时生成报表并发送给相关人员。 数据备份场景:可以定时备份数据并存储到指定的位置。

下面以数据同步场景为例,说明如何使用XXL-Job实现数据同步:

创建一个数据同步任务,填写任务名称、任务描述、任务路由策略、任务执行器、任务执行参数等信息,例如: 任务名称:syncData 任务描述:同步数据到其他系统 任务路由策略:第一个 任务执行器:xxl-job-executor-sample 任务执行参数:{"source":"db1","target":"db2"} Cron表达式:0 0/5 * * * ? * 在任务执行器中实现任务处理逻辑,例如: public class SyncDataTask implements IJobHandler { @Override public ReturnT execute(String param) throws Exception { JSONObject jsonObj = JSON.parseObject(param); String source = jsonObj.getString("source"); String target = jsonObj.getString("target"); // 同步数据的逻辑 ... return ReturnT.SUCCESS; } } 在执行器的配置文件中添加自定义任务处理器,例如: # xxl-job executor job handler13. XXL-Job的扩展开发 除了使用XXL-Job提供的基本功能外,还可以通过扩展开发来实现更加个性化的需求。XXL-Job提供了多种扩展开发方式,包括: - 自定义任务处理器:可以自定义任务执行逻辑,实现更加复杂的业务需求。 - 自定义触发器:可以自定义任务触发方式,例如基于事件的触发器。 - 自定义报警:可以自定义报警方式,例如基于微信、短信等方式的报警。 下面以自定义任务处理器为例,说明如何扩展开发XXL-Job: XXL-Job可以应用于多种场景,例如: 数据同步场景:可以定时同步数据到其他系统中。 报表生成场景:可以定时生成报表并发送给相关人员。 数据备份场景:可以定时备份数据并存储到指定的位置。 下面以数据同步场景为例,说明如何使用XXL-Job实现数据同步: 创建一个数据同步任务,填写任务名称、任务描述、任务路由策略、任务执行器、任务执行参数等信息,例如: 任务名称:syncData 任务描述:同步数据到其他系统 任务路由策略:第一个 任务执行器:xxl-job-executor-sample 任务执行参数:{"source":"db1","target":"db2"} Cron表达式:0 0/5 * * * ? * 在任务执行器中实现任务处理逻辑,例如: java public class SyncDataTask implements IJobHandler { @Override public ReturnT execute(String param) throws Exception { JSONObject jsonObj = JSON.parseObject(param); String source = jsonObj.getString("source"); String target = jsonObj.getString("target"); // 同步数据的逻辑 ... return ReturnT.SUCCESS; } } 在执行器的配置文件中添加自定义任务处理器,例如: # xxl-job executor job handler xxl.job.executor.jobhandler=myJobHandler 在任务配置中指定自定义任务处理器,例如: 任务名称:myJob 任务描述:自定义任务 任务路由策略:第一个 任务执行器:xxl-job-executor-sample 任务执行参数:{"param1":"value1","param2":"value2"} Cron表达式:0/5 * * * * ? * 任务处理器:myJobHandler 在自定义任务处理器中实现任务处理逻辑,例如: java public class MyJobHandler implements IJobHandler { @Override public ReturnT execute(String param) throws Exception { JSONObject jsonObj = JSON.parseObject(param); String param1 = jsonObj.getString("param1"); String param2 = jsonObj.getString("param2"); // 自定义任务处理逻辑 ... return ReturnT.SUCCESS; } } XXL-Job的集成与部署 XXL-Job可以集成到Spring Boot和Spring Cloud中使用,也可以使用Docker等容器技术进行部署和管理。下面以集成到Spring Boot为例,说明如何集成和部署XXL-Job: 添加Maven依赖 在Spring Boot项目的pom.xml文件中添加以下依赖: xml com.xuxueli xxl-job-core ${xxl.job.version} 配置XXL-Job 在Spring Boot项目的配置文件中添加以下配置: cos # xxl-job admin address list, such as "http://address1/xxl-job-admin,http://address2/xxl-job-admin" xxl.job.admin.addresses=http://localhost:8080/xxl-job-admin # xxl-job access token xxl.job.accessToken= # xxl-job executor registry name xxl.job.executor.appname=xxl-job-executor-sample # xxl-job executor address xxl.job.executor.address=http://localhost:9999/xxl-job-executor # xxl-job executor IP xxl.job.executor.ip= # xxl-job executor port xxl.job.executor.port=9999 # xxl-job executor log path xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler # xxl-job executor log retention days xxl.job.executor.logretentiondays=30 实现任务处理逻辑 在Spring Boot项目中实现任务处理逻辑,例如: java @Component public class MyJobHandler { @XxlJob("myJobHandler") public ReturnT myJobHandler(String param) { // 自定义任务处理逻辑 ... return ReturnT.SUCCESS; } } 启动执行器 在Spring Boot项目中添加执行器启动类,例如: java @SpringBootApplication @EnableXxlJob public class XxlJobExecutorApplication { public static void main(String[] args) { SpringApplication.run(XxlJobExecutorApplication.class, args); } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3