分布式任务调度平台XXL-JOB

今天做不成的事,明天也不会做好。


各位同学大家好,好久没写博客了。今天和大家介绍一款开源的分布式任务调度平台:XXL-JOB,xxl是作者(许大大)的名字缩写。这是一个很火的调度平台。它提供了强大的调度中心管理功能,和客户端分离设计,让开发人员只需要关注调度任务的业务代码实现。同时它也真正做到了开箱即用。好,废话不多说。我们先看看简单部署和使用。


1. XXL-JOB简介

使用前,我们都应该先对任务调度有一定的了解。
在实际项目开发中,除了Web应用、SOA服务外,还有一类不可缺少的,那就是定时任务调度。定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券;比如在保证最终一致性的场景中,往往利用定时任务调度进行一些比对工作;比如一些定时需要生成的报表、邮件;比如一些需要定时清理数据的任务等。
正常使用任务调度,我们都要开发管理界面,方便监控和配置。而XXL-JOB就帮我们做了这些事。

XXL-JOB 是一个轻量级分布式任务调度框架,支持通过 Web 页面对任务进行 CRUD 操作,支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,支持在线配置调度任务入参和在线查看调度结果。

在这里插入图片描述

2.Linux运行XXL-JOB项目

2.1 下载项目和sql脚本

访问作者的github ——>【传送门】,选择最新的稳定版本。
在这里插入图片描述
压下载后的压缩包,文件目录如下:
在这里插入图片描述将项目导入开发工具;同时进入目录:doc\db,执行tables_xxl_job.sql生成数据库,我这里用了mysql数据库。
在这里插入图片描述
在这里插入图片描述
项目子模块说明如下:
xxl-job-admin:调度中心
xxl-job-core:公共依赖
xxl-job-executor:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
:xxl-job-executor-sample-spring:Spring版本,通过Spring容器管理执行器,比较通用,推荐这种方式;
:xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器;
:xxl-job-executor-sample-jfinal:JFinal版本,通过JFinal管理执行器;
:xxl-job-executor-sample-nutz:Nutz版本,通过Nutz管理执行器;

2.2 启动调度中心和执行器

运行xxl-job-admin模块下的XxlJobAdminApplication启动类:根据配置文件信息,访问项目地址:
在这里插入图片描述
在这里插入图片描述
如果想要部署在linux服务器,那么只要把项目打成jar包,用java -jar命令来启动即可。

接下来是执行器的启动,在xxl-job-executor执行器示例下,有四种框架的使用,这里我用的是springboot。(springboot基于spring)

1、增加如下依赖(这里是gradle格式,可改成pom文件格式)

compile group: 'com.xuxueli', name: 'xxl-job-core', version:'2.0.1'
compile group: 'org.eclipse.jetty', name: 'jetty-server', version:'9.2.26.v20180806'
compile group: 'org.eclipse.jetty', name: 'jetty-util', version:'9.2.26.v20180806'
compile group: 'org.eclipse.jetty', name: 'jetty-http', version:'9.2.26.v20180806'
compile group: 'org.eclipse.jetty', name: 'jetty-io', version:'9.2.26.v20180806'
compile group: 'org.eclipse.jetty', name: 'jetty-client', version:'9.2.26.v20180806'

2、properties配置文件增加如下配置

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


### xxl-job executor address
xxl.job.executor.appname=xxl-job-executor-sample
xxl.job.executor.ip=127.0.0.1
xxl.job.executor.port=9999


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


### xxl-job log path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler


### xxl-job log retention days
xxl.job.executor.logretentiondays=-1

3、拷贝执行器(xxl-job-executor-sample-springboot)下面的XxlJobConfig文件到自己项目的config包

4、修改XxlJobConfig的basePackages,改成自己的jobhandle路径即可

5、调度中心配置调度任务(http://localhost:8080/xxl-job-admin),执行器(jobhandle)自己写自己的业务代码即可

编写好执行器代码后,启动项目注册到调度中心
在这里插入图片描述
录入执行器,AppName是配置文件的值:在这里插入图片描述
在这里插入图片描述
录入任务管理,JobHandler填@JobHandler里面的值
在这里插入图片描述

点击执行,查看控制台输出:
在这里插入图片描述
在这里插入图片描述

至此,xxl-jon的使用已经介绍完了,它还有许多强大的功能;例如:在任务配置页,选择任务的路由策略(分片广播,轮询),可以方便做任务的集群。
其他具体的使用可以去看官方文档----->【传送门】


版权声明:本文为qq_35992900原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。