分布式任务调度平台XXL-JOB本地配置可能遇到的问题和解决方案
一. 基本概念
XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
二. 本地实例配置问题
这个地方就不做过多赘述了,官方文档上以及说的很详细。网上的博客也有很多。接下来主要讲一下作者在本地配置运行过程中遇到的各种问题。
这里作者使用的环境
1. JDK 1.8
2. Maven 4.0
3. Mysql 8.0
4. 操作系统 Mac os (这里是关键,这也是下边各种问题的关键)
三. 配置运行过程中各种问题及解决方案
(1)Maven中包的导入问题
如果你是从Github上直接Git 下的项目那么你可能会发现 Maven下你会始终无法导入一些包导致报错。这主要是因为在xxl-job下的pom.xml `<xxl-rpc.version>1.4.1-SNAPSHOT</xxl-rpc.version>`这行代码的缘故,我仔细查看了他的maven发现并没有这个版本,所以就会导致一 致无法拉取这个包。
**解决方案:**
这里你需要把pom.xml文件下的这个配置改成
`<xxl-rpc.version>1.4.0</xxl-rpc.version>`
在进行导入问题就会解决。
(2) 在IDEA中启动项目是读写权限所造成的各种log文件无法创建读 取问题问题
- XxlJobAdminApplication,如果启动报错xxl- job-admin.log找不到,这里我用的Mac系统,对于某些文件的创建是有读写权限的。
报错信息ERROR in ch.qos.logback.core.rolling.RollingFileAppender[file] - Failed to create parent directories for [/data/applogs/xxl-job/xxl-job-admin.log]
XxlJobAdminApplication在启动的应该会自动创建这条路径下的所有文件,但是因为读写权限的问题,无法完成这个过程,所以才会报错。这里就需要使用者自己去创建这些文件。
sudo mkdir /data/
cd /data
/data sudo mkdir -p applogs/xxl-job
cd applogs/xxl-job
sudo touch xxl-job-admin.log
sudo chmod 777 xxl-job-admin.log
这样XxlJobAdminApplication*** 就可以执行成功了。
2. 同理执行XxlJobExecutorApplication*是也会出现类似的错误,也是因为读写权限的问题。
解决方案:
cd /data/applogs/xxl-job
sudo touch xxl-job-executor-sample-springboot.log
sudo chmod 777 xxl-job-executor-sample-springboot.log
sudo mkdir -p jobhandler/gluesource
- 执行日志文件读取问题,也是读取权限的问题
当你全部执行成功然后按照官方文档,编写一个简单的demo的时候,你会发现你的执行是成功的,但是当你查看执行日志的时候,你会看到下面这种情况。
解决方案
sudo chmod 777 /data/applogs/xxl-job(放开读写权限)