架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9198|回复: 0

[资料] 【实战】XXL-JOB 分布式任务调度平台的使用开发教程

[复制链接]
发表于 2021-9-7 16:35:50 | 显示全部楼层 |阅读模式
XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
回顾:

.net/c# Quartz.NET远程任务调度[附源码]
https://www.itsvse.com/thread-4729-1-1.html

Quartz CronTrigger最完整配置说明
https://www.itsvse.com/thread-4573-1-1.html

Quartz.net 简单配置教程
https://www.itsvse.com/thread-4297-1-1.html

asp.net mvc利用Quartz.Net插件执行定时任务
https://www.itsvse.com/thread-3308-1-1.html

GitHub地址:https://github.com/xuxueli/xxl-job/

官方文档地址:https://www.xuxueli.com/xxl-job/

首先,下载源码,地址:https://gitee.com/xuxueli0323/xxl-job/releases (通过国内gitee下载)

创建数据库和表结构

脚本文件地址:/xxl-job/doc/db/tables_xxl_job.sql,将脚本导入到 mysql 数据库中,脚本会自动判断是否存在 xxl_job 数据库并且自动创建 xxl_job 数据库,创建相应的表结构和插入初始数据。如下图:
QQ截图20210907160222.jpg

打开项目

使用 eclipse 导入 maven 项目,使用 maven 进行编译即可。

源码结构如下:

xxl-job-admin:调度中心
xxl-job-core:公共依赖
xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
:xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
:xxl-job-executor-sample-frameless:无框架版本;


QQ截图20210907160027.jpg

运行 xxl-job-admin 调度中心


xxl-job-admin 配置 mysql 数据库连接

打开 /xxl-job/xxl-job-admin/src/main/resources/application.properties 配置文件,配置如下:


打开 XxlJobAdminApplication.java 文件,启动项目。

访问 web 管理界面,地址:http://127.0.0.1:8080/xxl-job-admin,如下图:

QQ截图20210907152905.jpg

默认登录账号 “admin/123456


QQ截图20210907153007.jpg QQ截图20210907153046.jpg

运行执行器项目

找到 xxl-job-executor-sample-springboot 项目,修改 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


打开调度中心管理平台,点击调度器管理菜单,新增调度器,appname 填写:xxl-job-executor-itsvse

打开 XxlJobExecutorApplication.java 文件,尝试启动执行器,如下图:

QQ截图20210907161935.jpg

xxl-job-executor-sample-springboot 项目会开启两个端口,8081 端口是对外提供接口服务,9999 端口是提供给 xxl-job-admin 调用(用于和调度平台进行通信)。

QQ截图20210907161806.jpg


新建调度任务

执行器选择我们刚才新建的执行器,Cron 10 秒执行一次(*/10 * * * * ?),运行模式选择“BEAN”,JobHandler填写:demoJobHandler,其他选项随便填写,保存即可。

QQ截图20210907162552.jpg

在列表最右侧启动任务,然后,点击查询日志,如下图:


QQ截图20210907162802.jpg QQ截图20210907163014.jpg QQ截图20210907163101.jpg

通过调度中心平台和执行器的日志,都可以看到任务被成功执行了,任务 10 秒执行一次。

(完)





上一篇:【实战】Nginx 实现图片加水印功能
下一篇:Linux 之 Overlay 文件系统在 Docker 中的应用
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-20 21:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表