xxl-job应用笔记

系统组成:

  • 调度模块(调度中心):负责调度信息管理、按照调度配置信息发出调度请求,自身不承担业务代码,提供了执行器的注册发现、监控调度结果、执行日志等功能
  • 执行模块(执行器):负责接受调度中心的调度请求,执行具体的业务逻辑,启动时自动注册到调度中心
    • JobHander(任务):一个执行器可以包含多个JobHander,可以把执行器称为任务组

调度中心配置:

### 报警邮箱
xxl.job.mail.host=smtp.163.com
xxl.job.mail.port=25
xxl.job.mail.ssl=false
[email protected]
xxl.job.mail.password=asdfzxcv
[email protected]
xxl.job.mail.sendNick=《任务调度平台XXL-JOB》

### 登录账号
xxl.job.login.username=admin
xxl.job.login.password=123456

### 调度中心通讯TOKEN,非空时启用
xxl.job.accessToken=

### 调度中心国际化设置,默认为中文版本,值设置为“en”时切换为英文版本
xxl.job.i18n=

集群部署:

  • 数据库配置保持一致
  • 登陆账号配置保持一致
  • 服务器时间保持一致

执行器配置:

#调度中心地址,多个节点使用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调"。
rrd.job.admin.addresses=http://localhost:8997
#执行器名称,执行器集群分组依据
rrd.job.executor.appname=task-executor
#执行器IP地址
#rrd.job.executor.ip=localhost
#执行器内置jetty服务的端口号,执行器与调度中心通过该服务进行通信
rrd.job.executor.port=8083
#执行器运行日志文件存储的磁盘位置
rrd.job.executor.logpath=/opt/app/tomcat/logs/jobhandler/
#执行器通信TOKEN,与调度中心一致,非空启用
rrd.job.accessToken=

集群部署:

  • 调度中心地址配置保持一致
  • 同执行器集群AppName配置保持一致

调度中心新增执行器:

xxl-job应用笔记_第1张图片

xxl-job应用笔记_第2张图片

调度中心新增任务:

xxl-job应用笔记_第3张图片

执行器:每个任务必须绑定一个执行器

任务描述:-

路由策略:当执行器集群部署时,提供了路由策略

  • FIRST(第一个):固定选择第一个机器
  • LAST(最后一个):固定选择最后一个机器
  • ROUND(轮询):-
  • RANDOM(随机):随机选择在线的机器
  • CONSISTENT_HASH(一致性HASH):每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上
  • LEAST_FREQUENTLY_USED(最不经常使用):使用频率最低的机器优先被选举
  • LEAST_RECENTLY_USED(最近最久未使用):最久为使用的机器优先被选举
  • FAILOVER(故障转移):按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度
  • BUSYOVER(忙碌转移):按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度
  • SHARDING_BROADCAST(分片广播):广播触发对应集群中所有机器执行一次任务,同时传递分片参数;可根据分片参数开发分片任务

Cron:Cron表达式

运行模式:

  • Bean模式:在执行器端以@JobHandler注解标识为任务
  • GLUE模式(Java):任务以源码方式维护在调度中心
  • GLUE模式(Shell):任务以源码方式维护在调度中心
  • GLUE模式(Python):任务以源码方式维护在调度中心
  • GLUE模式(NodeJS):任务以源码方式维护在调度中心

JobHandler:运行模式为 "BEAN模式" 时生效,对应执行器中@JobHandler注解自定义的value值

子任务:每个任务都有一个唯一的任务ID,当本任务执行结束并且执行成功时,将会触发子任务ID所对应的任务的一次主动调度

阻塞处理策略:调度过于密集执行器来不及处理时的处理策略

  • 单机串行(默认):调度请求进入单机执行器后,调度请求进入FIFO队列并以串行方式运行
  • 丢弃后续调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败
  • 覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本次调度任务

失败处理策:调度失败时的处理策略

  • 调度失败重试:调度中心调度失败且启用该策略时,将会自动重试一次

执行参数:任务执行所需的参数,多个参数时用逗号分隔,任务执行时将会把多个参数转换成数组传入

报警邮件:任务调度失败时邮件通知的邮箱地址,支持配置多邮箱地址,配置多个邮箱地址时用逗号分隔

负责人:任务的负责人

转载于:https://my.oschina.net/u/3501548/blog/1923301

你可能感兴趣的:(xxl-job应用笔记)