xxl-job 项目启动后自动注册执行器、方法并启动
依赖jar包
| 引入包 | 版本 |
|---|---|
| jdk | 1.8 |
| spring boot | 2.7.2 |
| xxl-job-core | 2.3.1 |
| allbs-common | 2.0.0 |
使用
添加依赖
1 | <dependency> |
1 | implementation 'cn.allbs:allbs-xxl-job:2.0.1' |
1 | implementation("cn.allbs:allbs-xxl-job:2.0.1") |
启动xxl-job调度中心

配置需要调度动态定时任务的服务
启动类添加注解@EnableXxlJob 开启动态定时任务
添加配置或者只添加环境变量,环境 变量如下图
1 | xxl: |
yml实际配置示例

注意点


想要成功注册必须满足以下条件,否则会出现xxl-job registry fail
- xxl-job调度中心如果设置了content-path,则客户端必须添加该字符串,即xxl.job.admin.address中的内容
- xxl-job rpc接口调用中url拼接默认没有斜杠,所以必须在content-path之后添加斜杠
- 如果xxl-job调度中心配置了accessToken则客户端也需要配置
示例

添加环境变量
| 环境变量名称 | 默认值 | 说明 |
|---|---|---|
XXL_JOB_SERVER_HOST |
xxl-job-server-host | 调度中心的ip,如果使用默认则需在hosts中配置对呀的ip |
XXL_JOB_SERVER_PORT |
8080 | 调度中心ip |
XXL_JOB_SERVER_USERNAME |
admin | 自动注册时使用的账号 |
XXL_JOB_SERVER_PASSWORD |
123456 | 自动注册时使用的密码 |
XXL_JOB_CONTEXT_PATH |
xxl-job-admin | 调度中心content-path |
XXL_JOB_EXECUTOR |
xxl-job-executor-client | 执行器名称 |
XXL_JOB_CLIENT_PORT |
9001 | 客户端端口,目前会导致多个客户端端口冲突,后续优化 |
XXL_JOB_LOG_PATH |
/data/applogs/xxl-job/ | 日志保存路径 |
XXL_JOB_ACCESS_TOKEN |
default_token | 调度中心配置的accessToken |
XXL_JOB_EXECUTOR_AUTO |
0 | 是否自动注册 0为自动注册, 1为手动注册 |
manual-address-list |
http://127.0.0.1:9999,http://127.0.0.1:8888 | 手动注册列表 以逗号分隔 |
普通使用,需要在服务端的管理页面中手动注册和启动
1 |
|
手动注册启动

自动注册和使用(参考文章)
需要自动注册的方法需要添加@XxlJobAuto注解
1 | import cn.allbs.job.annotation.XxlJobAuto; |
注解可配置项
| 字段名称 | 默认值 | 说明 |
|---|---|---|
| jobDesc | 任务描述(必填项) | |
| author | 负责人(必填项) | |
| alarmEmail | 报警邮件,多个以逗号分隔 | |
| cron | cron 表达式(当此项为空时则执行固定频率,如果不为空优先固定频率使用该配置) | |
| executorParam | 执行器任务参数 | |
| executorFailRetryCount | 0 | 失败重试次数 |
| executorTimeout | 0 | 执行超时时间 |
| misfireStrategy | DO_NOTHING | 调度过期策略(忽略: DO_NOTHING 立即执行一次: FIRE_ONCE_NOW) |
| executorRouteStrategy | FIRST | 执行器路由策略 FIRST:第一个 LAST:最后一个 ROUND:轮询 RANDOM:随机 CONSISTENT_HASH:一致性HASH LEAST_FREQUENTLY_USED:最不经常使用 LEAST_RECENTLY_USED:最近最久未使用 FAILOVER:故障转移 BUSYOVER:忙碌转移 SHARDING_BROADCAST:分片广播 |
| triggerStatus | 0 | 调度状态 0 停止 1运行 |
| scheduleConf | 1 | 固定速度调用时调用值 如果cron为空时使用此配置 |
| timeUnit | TimeUnit.SECONDS | 固定速度时调用速度的单位, 默认为秒 |
使用效果


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 共赴良策!
评论