xxljob分布式任务调度学习

2022-06-14 15:51:46 浏览数 (1)

前言

定时任务这种类型的需求在实际项目中是非常常见的,本小节来对xxljob这种任务调度框架,于2018-12-05,XXL-JOB参与”2018年度最受欢迎中国开源软件“评比,在当时已录入的一万多个开源项目中角逐,最终排名第19名。看这影响力应该是非常不错的,本小节来做一个学习梳理

优点

其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用,目前来说elasticjob和xxl-job都是非常优秀的技术框架

本地部署

1 克隆项目: git clone https://github.com/xuxueli/xxl-job.git 2 导入idea 3 创建本地数据xxl-job库,xxl-job需要依赖mysql,所以需要初始化数据库,在xxl-job doc文件夹下找到tables_xxl_job.sql文件。在mysql上运行sql文件

4 修改配置文件中的msyql用户名和密码:

启动项目

简单一点直接跑admin项目的main方法启动也行,也可以打包成jar放到服务器上 访问地址:http://localhost:8080/xxl-job-admin

进入管理页面。默认账号/密码:admin/123456

接下来看看这个任务调度是怎么来执行的

如SampleXxlJob类中有这么一个方法

任务调度平台的这个BEAN和@XxlJob("demoJobHandler")是对上的

接下来执行一次看结果,前提是得先启动任务也就是running状态

可以看到,当点击执行一次之后就进入到了方法中

也可以自己来写一个,自己创建一个MyJobHandler类

也可以来查看每次执行的日志

集成

如果在项目中去集成也很简单

  • 在项目中引入依赖
代码语言:javascript复制
<dependency>
  <groupId>com.xuxueli</groupId>
  <artifactId>xxl-job-core</artifactId>
  <version>2.0.1</version>
</dependency>
  • 将xxl-job-executor-sample-springboot这个模块下的XxlJobConfig复制一份到项目中(如下),然后将相关配置设置好即可
代码语言:javascript复制
# web port
server.port=8081
# no web
#spring.main.web-environment=false

# log config
logging.config=classpath:logback.xml


### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

### xxl-job, access token
xxl.job.accessToken=

### xxl-job executor appname
xxl.job.executor.appname=xxl-job-executor-sample
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.executor.address=
### xxl-job executor server-info
xxl.job.executor.ip=
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

这部分 的内容点要深入学习起来还是比较多的,先简单入个门,后面再继续补充......

相关文档

github地址:https://github.com/xuxueli/xxl-job xxl开源社区:https://www.xuxueli.com/xxl-job/

0 人点赞