查看原文
其他

25k+ stars 开源的分布式任务调度平台

小苏 爱编程爱技术 2023-12-13

XXL-JOB 是一个开源的分布式任务调度平台,开发迅速、学习简单、轻量级、易扩展,开箱即用。支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手,支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效。

功能特性

  • 高效、易用、灵活、简单、动态

  • 跨语言、国际化、容器化、线程池隔离

  • 调度中心HA、执行器HA、注册中心

  • 弹性扩容缩容、用户管理

  • 触发策略、调度过期策略、阻塞处理策略

  • 任务超时控制、任务失败重试、任务失败告警

  • 路由策略、分片广播任务、动态分片

  • 故障转移、任务进度监控、Rolling实时日志

  • GLUE、脚本任务、命令行任务

  • 任务依赖、一致性、自定义任务参数

  • 调度线程池、数据加密

  • 邮件报警、推送maven中央仓库

  • 运行报表、全异步

🌱 快速体验

1、下载源码
Github 源码地址:
https://github.com/xuxueli/xxl-job
Gitee 源码地址:

http://gitee.com/xuxueli0323/xxl-job

2、依赖环境
  • Maven3+

  • Jdk1.8+

  • Mysql5.7+
3、初始化数据库
下载源码后解压,获取 “数据库初始化SQL脚本” 并执行。
数据库初始化SQL脚本 位置:
/xxl-job/doc/db/tables_xxl_job.sql
4、编译源码
下载源码后导入到IDE,源码结构如下:
# 调度中心xxl-job-admin # 公共依赖xxl-job-core # 执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)xxl-job-executor-samples # Springboot版本,通过Springboot管理执行器,推荐这种方式     xxl-job-executor-sample-springboot     # 无框架版本     xxl-job-executor-sample-frameless
5、配置 调度中心
调度中心后台管理服务:xxl-job-admin
作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。
步骤一:调度中心配置

调度中心配置文件地址:

/xxl-job/xxl-job-admin/src/main/resources/application.properties
调度中心配置内容说明:
### 修改调度中心数据库连接spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghaispring.datasource.username=rootspring.datasource.password=root_pwdspring.datasource.driver-class-name=com.mysql.jdbc.Driver
### 报警邮箱spring.mail.host=smtp.qq.comspring.mail.port=25spring.mail.username=xxx@qq.comspring.mail.password=xxxspring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.smtp.starttls.enable=truespring.mail.properties.mail.smtp.starttls.required=truespring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
### 调度中心通讯TOKEN [选填]:非空时启用;xxl.job.accessToken=
### 调度中心国际化配置 [必填]:默认为 "zh_CN"/中文简体, 可选范围为 "zh_CN"/中文简体, "zh_TC"/中文繁体 and "en"/英文;xxl.job.i18n=zh_CN
## 调度线程池最大线程配置【必填】xxl.job.triggerpool.fast.max=200xxl.job.triggerpool.slow.max=100
### 调度中心日志表数据保存天数 [必填]:过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能;xxl.job.logretentiondays=30

步骤二:部署项目

修改完配置文件,使用 maven 编译打包。
调度中心访问地址:http://localhost:8080/xxl-job-admin

默认登录账号:admin/123456

后台管理界面如下图所示,至此 调度中心 部署成功。

6、配置 业务项目

步骤一:在业务项目中引入 maven 依赖

<!-- 中央仓库地址 --><!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ --><dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>${最新稳定版本}</version></dependency>

步骤二:在 application.properties 配置执行器

配置内容如下:
### 修改调度中心为实际的访问地址xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin### 执行器通讯TOKEN [选填]:非空时启用;xxl.job.accessToken=### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册xxl.job.executor.appname=xxl-job-executor-sample### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。xxl.job.executor.address=### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";xxl.job.executor.ip=### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;xxl.job.executor.port=9999### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler### 执行器日志文件保存天数 [选填] :过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;xxl.job.executor.logretentiondays=30

步骤三:配置执行器组件

执行器组件初始化 Bean:
@Beanpublic XxlJobSpringExecutor xxlJobExecutor() { logger.info(">>>>>>>>>>> xxl-job config init."); XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); xxlJobSpringExecutor.setAdminAddresses(adminAddresses); xxlJobSpringExecutor.setAppname(appname); xxlJobSpringExecutor.setIp(ip); xxlJobSpringExecutor.setPort(port); xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); return xxlJobSpringExecutor;}

7、 开发第一个任务“Hello World”

以新建一个 GLUE模式(Java) 运行模式的任务为例。

1. 新建任务

登录调度中心,点击【新建任务】按钮,新建示例任务。如下图所示:

2. “GLUE模式(Java)” 任务开发

点击任务右侧【GLUE】按钮,进入 “GLUE编辑器开发界面”。


“GLUE模式(Java)” 运行模式的任务默认已经初始化了示例任务代码,即打印Hello World。 

“GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandler的Java类代码,它在执行器项目中运行,可使用 @Resource/@Autowire 注入执行器里中的其他服务。

3. 执行任务

点击任务右侧 【执行】按钮,可手动触发一次任务执行。通常情况下,通过配置Cron表达式进行任务调度触发。

4. 查看日志

点击任务右侧【日志】按钮,可前往任务日志界面查看任务日志。
在任务日志界面中,可查看该任务的历史调度记录以及每一次调度的任务调度信息、执行参数和执行信息。运行中的任务点击右侧的【执行日志】按钮,可进入日志控制台查看实时执行日志。

在日志控制台,可以Rolling方式实时查看任务在执行器一侧运行输出的日志信息,实时监控任务进度。

其他的功能,他家可以参考官方的开发手册,非常详细,最后贴上相关的官网链接:

官网:

https://www.xuxueli.com/xxl-job/

开源地址:

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

https://gitee.com/xuxueli0323/xxl-job

每天给大家带来网站工具、开源社区项目、开源软件、安卓&IOS软件等黑科技!

如果你们有什么好的建议,也可以在后台留言。

创作不易,希望大家给一点鼓励,把公众号设置为"星标",给文章点下""和"",谢谢大家!每日持续更新,望宝子们多多支持~

点关注不迷路
本文发表于公众号【爱编程爱技术
关注我们,阅读更多精彩内容

点击上方关注我们,谢谢支持

往期推荐:

Cmder:25k+ stars 开源的命令行终端工具,我愿称之为最强!
Team IDE:高颜值的客户端工具集,开源!
Potplayer 播放器发布新版本,高颜值无广告!
frp:70k+ Stars!简单、高效的内网穿透工具
KMS:开源、免费、全自动激活 Windows、Office!
帮小忙:在线工具箱网站,130多款免费工具!
PDF24:人人都能用的免费PDF软件,所有你需要的功能全都有!
13k+ Stars 开源免费的 Github 加速器,突破地域限制!
tabler:36k+ stars 免费开源的仪表盘工具包!
13K+ Stars 开源、高颜值的影视软件发布更新!
继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存