XXL-JOB (日常BUG-1)

报错

: >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='lottery-job', registryValue='http://192.168.3.102:9999/'}, registryResult:ReturnT [code=500, msg=The access token is wrong., content=null]

然后就是没自动注册上去

排查

1、NACOS

xxl:
  job:
    admin:
      addresses: http://192.168.101.51:8088/xxl-job-admin
      username: admin
      password: 123456
    executor:
      appname: zhishiku-process-service
      # 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。
      #从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
      address:
      # 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;
      # 地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
      ip:
      # 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
      port: 9999
      title: '知识库定时调度'
      # 执行器地址类型:0=自动注册、1=手动录入,默认为0
      addressType: 0
      logpath: /mydata/server_logs/xxl-job/jobhandler
      logretentiondays: 30
    accessToken: default_token

这里选择了默认accessToken: default_token

2、代码

public class XxlJobConfig {
    @Value("${xxl.job.accessToken}")
    private String accessToken;
}

public class XxlJobAutoConfiguration {
    @Autowired
    XxlJobConfig xxlJobConfig;
    @Bean
    public XxlJobSpringExecutor xxlJobExecutor() {
            xxlJobSpringExecutor.setAccessToken(this.xxlJobConfig.getAccessToken());
    }
}

查断点排查了很多地方没传错值,换ip、换版本都不行。

3、DOCKER

最后检查docker立马发现问题,DOCKER配置XXL-JOB的数据库时候,设置了token导致前面事故发生

docker run -di -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.101.51:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=123456 --xxl.job.accessToken=zhishiku.dev" \
-p 8088:8080 \
-v /mydata/xxl-job:/data/applogs \
--name xxl-job \
--privileged=true \
--restart=always \
xuxueli/xxl-job-admin:2.4.1

发现问题

没错配置数据库时候还配置了accessToken
--xxl.job.accessToken=zhishiku.dev
因此需要修改上面nacos默认的accessToken
accessToken: zhishiku.dev

测试

大功告成
在这里插入图片描述

更多推荐