分布式任务调度平台XXL-Job搭建

下载: 

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

下载 然后倒入到自己的工程里面

引入后:

 导入数据:跑一边

 

 导入:

 

修改:

 

Window -->show view-->other-->Servers

 

把admin引入 

方法:

  右键:

点击add and remove 即可

启动 XXL-Job admin平台:

 

 

 

 访问:http://localhost:8080/xxl-job-admin/

 

 

 

 

下面客户端的demo (Spring boot 的 对接到Admin平台)

 

上面项目中整合XXL-Job 类继承 IJobHandler类。然后通过注解 注册到XXL-Job admin 容器中去  对接到平台上去  value是注册上去的名称

 

下面: 

 ### 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  ## 这是admin的地址

### xxl-job executor address
xxl.job.executor.appname=toov5-job    #执行器的名字 起了个名字

 

 

  

 

 

下面分别是 spring boot的 job服务别名 地址集合

 

 

 

 

点击保存 

 

 

启动执行器:

 

 

启动执行器后,会将服务器本地信息注册到admin平台。信息包括: 是否存活   定义的注解Value的值  (在先新建任务里面都会有记录了,下面的操作中可以选择的)

 

 

 然后去任务管理李: 新建任务

 

 

 

 添加相关信息后,保存。任务就开始根据预定的时间规则去运行了

 

可以查看日志:

 

 

 

 

 

分析原理:

 在XXL-JOB触发规则,查询对应执行器(实际定时Job执行地址),然后再使用XXL-JOB发送请求到实际的定时JOB任务地址去执行。使用demoJobHandler名称查找对应jvm服务器上JobHandler容器。

获取到类的信息,反射进行执行。使用demoJobHandler名称查找对应的jvm服务器上@JobHandler容器获取到类的信息,再使用反射机制执行

 

注解底层实现:

@JobHandler(value = "demoJobHandler")   //job 注册到容器中的名称   下面的方法是执行的定时job  底层实现 value  demoJobHandler 名称  对应存放类的class地址。然后反射获取方法执行之

 

 原理:

 搭建xxl-job平台 ,然后创建执行器。netty会帮助创建服务端口号。执行器启动时候,会把服务信息注册到xxl-job平台。

 创建执行器(实际任务地址)

 然后任务管理 新增任务   jobhandler   Corn表达式  

 首先在xxl-job平台出发job 然后获取执行地址  

 

 

 

 

 

    

 

posted @ 2018-11-09 00:52  toov5  阅读(7877)  评论(0编辑  收藏  举报