xxl-job源码组成部分- /xxl-job-admin :调度中心,项目源码- /xxl-job-core :公共Jar依赖- /xxl-job-executor-samples :执行器,Sample示例项目(大家可以在该项目上进行开发,也可以将现有项目改造生成执行器项目)

项目接入分布式任务调度平台xxl-job有以下考虑

1 在项目集群环境下,能避免定时任务重复执行。

2 支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;

3 动态:支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,即时生效;

4 调度中心和执行器都支持集群环境保证高可用,支持故障转移。

5 弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;

6 任务注册: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;

7 路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;

官网地址:

分布式任务调度平台XXL-JOB​www.xuxueli.com
ba8a6bc93562c3078a9ca5820fd82c1b.png

1 下来实操搭建调度平台,首先下载当前最新的Release版本github地址:

https://github.com/xuxueli/xxl-job/​github.com

9922978b38a1abc2e38dc53e402c2995.png

我在打包时遇到了一个报错 :

Failed to execute goal on project xxl-job-admin: Could not resolve dependencies for project com.xuxueli:xxl-job-admin:jar:2.1.2: Could not transfer artifact javax.activation:activation:jar:1.1 from/to central (Central Repository:): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

这时需要在settings.xml中加入中央仓库地址后打包ok

         <mirror> 
		    <id>Central</id>   
		    <url>http://repo1.maven.org/maven2</url>   
		    <mirrorOf>central</mirrorOf>
        </mirror>

2 执行/xxl-job/doc/db/tables_xxl_job.sq创建数据库(mysql)、创建表。

创建表xxl_job_registry时报了 max key length is 767 bytes需要加

mysq索引的字段都太长了,解决办法:让mysql支持比较长的索引,然后在插入表的时候,添加ROW_FORMAT=DYNAMIC ,自动格式化索引。

show variables like 'innodb_large_prefix';
show variables like 'innodb_file_format';
--修改最大索引长度限制
set global innodb_large_prefix=1;
set global innodb_file_format=BARRACUDA;
-- 添加
set global innodb_file_format_max=BARRACUDA;

CREATE TABLE `xxl_job_registry` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `registry_group` varchar(50) NOT NULL,
  `registry_key` varchar(255) NOT NULL,
  `registry_value` varchar(255) NOT NULL,
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4;

修改xxl-job-admin数据库配置为自己的连接地址、用户名、地址。启动xxl-job-admin和xxl-job-executor-sample-springboot。

访问http://127.0.0.1:8080/xxl-job-admin/ 用户名adminm密码123456

bd00239a8db1b106745fc9f2649c9bfc.png

任务管理配置:

96e533497a0af7719bb100ff6fdb8bd3.png

执行器配置:

c8953868f5f0579083882aae144e74ee.png

启动任务:

f51acaabe286442a02a4d5a159ead541.png

95cf41c1d9191fff2555158621d06748.png

执行器执行成功!完结,点赞求关注~,你的鼓励对我很重要~

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐