分布式任务调度框架 xxl-job
源码地址:https://gitee.com/xuxueli0323/xxl-job
文档地址:https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E5%B9%B3%E5%8F%B0XXL-JOB%E3%80%8B
项目结构如图:
1 xxl-job-admin
xxl-job 的调度器 和管理界面
2 xxl-job-core
核心包 执行器怎么注册到 调度器和任务调度的逻辑都在这里面
3 xxl-job-executor-sample-springboot
spring boot项目的一个执行器项目
xxl-job 分成调度器和执行器2部分,doc 目录下面和初始化表的sql和文档,
调度器管理着调度任务,调用那个执行器,锁,调用记录等信息,
执行器是真实执行逻辑的地方,调度器通过rpc调用执行器里面的任务
调度器需要指定数据库,邮件之类的一些信息:
执行器需要指定调度器地址等信息,当前appName
初始化配置 执行器对象 XxlJobSpringExecutor(这个对象会向调度器注册当前执行器)
使用@XxlJob定义一个任务并且获取参数:
xxl_job_group配置着执行器组,也就是前面的app_name,同名的执行器应该是同一个项目的不同实例。正常他们应该是对等的节点,有一样的任务定义和逻辑。
xxl_job_info 里面存着任务信息。
管理界面图:比较重要的执行器名字,执行时间,和任务名字,这里面的配置都写在mysql 里面的,可以直接修改mysql 得到
xxl-job-admin里面有大量接口,比如 怎么想调度器注册一个执行者,有或者 管理面所有管理功能的api。
下图是向调度中心注册执行者的代码
分布式环境有动态多个调度器的时候,调度中心地址是注册中心获取的,可以通过这个接口来注册当前执行者(实际是core里面的修改,实际需要重写 XxlJobSpringExecutor.initAdminBizList方法,并且,替换AdminBiz 的注册相关三个方法的实现)
下图是使用获取调度中心集合,然后向调度中心集合注册执行执行者的代码(循环向所有调度中心注册执行者)
下图是初始化调度中心的代码,默认是去adminAddressses 字段上面取,这里可以换成去分布式注册中心获取指定的调度中心服务列表
能耍的时候就一定要耍,不能耍的时候一定要学。
--天道酬勤,贵在坚持posted on 2022-08-22 15:46 zhangyukun 阅读(103) 评论(0) 编辑 收藏 举报