xxl-job 任务注册
https://www.jianshu.com/p/92f0361dc3d6
官方文档:https://www.xuxueli.com/xxl-job/
之前和分享了一下对xxl-job的简单理解,这次聊一聊xxl-job任务注册流程和简单的使用方法。
一、XXL-JOB调度数据库表如下:
- xxl_job_lock:任务调度锁表;
- xxl_job_group:执行器信息表,维护任务执行器信息;
- xxl_job_info:调度扩展信息表: 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执 行器、执行入参和报警邮件等等;
- xxl_job_log:调度日志表: 用于保存XXL-JOB任务调度的历史信息,如调度结果、执行结果、调度入参、调度机 器和执行器等等;
- xxl_job_log_report:调度日志报表:用户存储XXL-JOB任务调度日志的报表,调度中心报表功能页面会用到;
- xxl_job_logglue:任务GLUE日志:用于保存GLUE更新历史,用于支持GLUE的版本回溯功能;
- xxl_job_registry:执行器注册表,维护在线的执行器和调度中心机器地址信息;
- xxl_job_user:系统用户表;
之所以先介绍表的目的在于,XXL-JOB所有的操作都是基于这几张表的。
二、增加执行器
2.1 UI配置执行器
1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险;
2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器。
AppName: 是每个执行器集群的唯一标示AppName, 执行器会周期性以AppName为对象进行自动注册。可通过该配置自动发现注册成功的执行器, 供任务调度时使用;
名称: 执行器的名称, 因为AppName限制字母数字等组成,可读性不强, 名称为了提高执行器的可读性;
排序: 执行器的排序, 系统中需要执行器的地方,如任务新增, 将会按照该排序读取可用的执行器列表;
注册方式:调度中心获取执行器地址的方式;
自动注册:执行器自动进行执行器注册,调度中心通过底层注册表可以动态发现执行器机器地址;
手动录入:人工手动录入执行器的地址信息,多地址逗号分隔,供调度中心使用;
机器地址:"注册方式"为"手动录入"时有效,支持人工维护执行器的地址信息;
2.2 调度中心配置执行器
程序配置执行器比较简单,只是一个单纯的web接口,做了必要的参数校验,直接存入xxl_job_group表中
同时xxl_job_registry表中维护了执行器存活机器的相关信息,数据是动态的,会新增和物理删除。
三、增加任务
3.1 UI新建任务
登录调度中心,点击下图所示“新建任务”按钮,新建示例任务。然后,参考下面截图中任务的参数配置,点击保存。
值得一提的是,一个任务只能对应一个执行器,反之亦然,一个执行器可以拥有对个任务
3.2 执行器实现
客户端实必须实现对应的接口,如果是spring项目,增加相应地注解即可
3.3 调度中心增加任务
程序配置执行器比较简单,是一个单纯的web接口
而后做了大量的的参数校验,确认执行器存在,最后存入xxl_job_group表中,等待后续的执行,流程也相对简单。
四、总结
任务新增流程相对比较简单,执行器代码侵入性也比较低,最主要明白几张表的作用,和执行器与任务之间的关系,后面会分享一下,任务是具体如何执行的
作者:迷失的撒旦
链接:https://www.jianshu.com/p/92f0361dc3d6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。