大家好,我是人见人爱,花见花开的开源小妹。今天我来给大家分享一个超好用的分布式任务调度平台:XXL-JOB。
事情的起因是这样滴:最近公司项目需要改革,找出之前项目的痛点,然后对症下药。本来我以为没有本小妹什么事呢,结果。。。不说了,直接上图。
你们也看到了,这篇文章是怎么来的啦,哈哈。
既然我们公司之前用的是Quartz,但是现在要换了它,那么我们就来看看Quartz哪里不好,同时也看看XXL-JOB好在哪里。
看到这么多优点,你们是不是也有点迫不及待了呢?不要急,不要慌,待本小妹慢慢带你们入门。
下载项目,源代码地址为:略略略,容本小妹卖个关子,一会告诉你们源码地址,下载完成之后直接使用maven进行编译即可;
源代码结构如下:
快夸我贴心,源码的用处我都给标出来啦。
初始化数据库,直接执行自带的数据库脚本即可,就不用本小妹多说啦
部署任务调度中心项目xxl-job-admin
该项目的作用是:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。
修改配置文件: xxl-job-admin/src/main/resources/application.properties,一般修改下数据库连接地址即可
部署启动项目:以上配置正确,直接编译启动项目即可
项目访问地址为:http://localhost:9080/xxl-job-admin (由于我这里8080端口被占用了,因此我换成了8090端口,嘻嘻)
登录系统: 用户名密码为:admin/123456
首页图如下:
至此,“任务调度中心管理系统”已部署成功。还不要高兴的太早哦,这刚刚完成了一半。
部署执行器项目
可以使用作者提供的实例项目:
也可以集成到现有的项目中。这里我要集成到自己已有的服务中。(又得夸我一波了)
步骤一:引入依赖
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version>
</dependency>
步骤二:添加执行器的配置信息
可以copy【xxl-job-executor-sample-springboot】项目中的配置文件,放到自己项目下,做一些相应的修改
步骤三:执行器组件配置
可以copy示例代码中的配置文件到自己项目中,配置位置为:
步骤四:执行执行器项目
上述配置完成之后,可以直接执行项目的主启动类,以启动执行器。
开发定时任务
步骤一:代码的编写
步骤二:在任务调度中心添加任务
保存后效果如下:
启动“调度中心”和“定时器”执行任务
至此,XXL-JOB的快速入门已经完成。
我还贴心的为大家准备了系统的截图哦~~
在首页可以查看任务的总体情况,包括任务个数,总调度次数等等
对所有定时任务进行一个统一管理,定时任务是依赖于执行器的,一个执行器包含多个定时任务
查看定时任务的执行情况,包含成功失败等情况,失败的可以查看失败原因
管理执行器,可以类比微服务中,服务注册中心对于注册到该中心的微服务的管理
该系统和微服务中的服务注册中心的思想非常类似,几个关键组件的关系如下图所示:
目前已有多家公司接入xxl-job,包括比较知名的大众点评,京东,优信二手车,北京尚德,360金融 (360),联想集团 (联想),易信 (网易)等等....
而我们公司在最近也接入了该项目,确实解决了之前定时任务使用的一些痛点,而且效果也很乐观,所以如果你也在寻找分布式任务调度系统的话,这个框架可以是一个不错的选择,感兴趣的同学可以去了解下。