xxl-job 部署
- [xxl-job 部署](#xxl-job 部署)
xxl-job 部署
代码拉取
https://github.com/xuxueli/xxl-job
直接 IDea 拉取


初始化数据库
我是打算把xxl-job也部署到虚拟机的,所以这个xxl-job存储数据的数据库也直接建立在已有的 nfturbo 用户上。
xxl-job的数据库初始化sql语句在这里

直接新建一个数据库,然后执行初始化数据

配置文件修改:
改个端口号防止冲突,以及数据库的连接


yaml
### web
# 调度中心 Web 服务的监听端口
server.port=23333
# 访问地址变为:http://192.168.209.129:23333/xxl-job-admin
server.servlet.context-path=/xxl-job-admin
### actuator 所有监控接口的统一前缀
management.endpoints.web.base-path=/actuator
# 关闭 Actuator 中"邮件健康检查"功能(避免不必要的告警)。一般保持 false 即可
management.health.mail.enabled=false
### resources 静态资源
# DispatcherServlet 的加载时机。0 表示容器启动时立即加载(默认 -1 为懒加载)。设为 0 可加快首次请求响应
spring.mvc.servlet.load-on-startup=0
#静态资源 URL 匹配模式。所有 /static/xxx 的请求都会找静态资源
spring.mvc.static-path-pattern=/static/**
#静态资源文件存放位置。只扫描 classpath 下的 /static/ 目录(jar 包内)
spring.web.resources.static-locations=classpath:/static/
### freemarker 模板引擎配置
#Freemarker 模板文件存放路径(xxl-job 的页面模板都在这里)
spring.freemarker.templateLoaderPath=classpath:/templates/
#模板文件后缀
spring.freemarker.suffix=.ftl
#字符编码
spring.freemarker.charset=UTF-8
spring.freemarker.request-context-attribute=request
#Freemarker 数字格式化规则。显示小数时最多保留 8 位,不足不补 0
spring.freemarker.settings.number_format=0.##########
#安全策略:限制 Freemarker 模板中 new 任意 Java 类(防止模板注入攻击)。safer 是推荐的安全模式
spring.freemarker.settings.new_builtin_class_resolver=safer
### mybatis - MyBatis Mapper XML 文件位置。扫描 classpath 下的所有 *Mapper.xml 文件
mybatis.mapper-locations=classpath:/mapper/*Mapper.xml
### datasource-pool -> HikariCP 连接池配置; Spring Boot 默认连接池
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
# 最小空闲连接数
spring.datasource.hikari.minimum-idle=10
# 最大连接池大小
spring.datasource.hikari.maximum-pool-size=30
# 自动提交
spring.datasource.hikari.auto-commit=true
# 空闲连接存活时间(ms)
spring.datasource.hikari.idle-timeout=30000
# 连接池名称(日志用)
spring.datasource.hikari.pool-name=HikariCP
# 连接最大存活时间(15分钟)
spring.datasource.hikari.max-lifetime=900000
# 获取连接超时(10秒)
spring.datasource.hikari.connection-timeout=10000
# 连接有效性测试 SQL
spring.datasource.hikari.connection-test-query=SELECT 1
# 验证超时(1秒)
spring.datasource.hikari.validation-timeout=1000
### xxl-job, datasource 核心数据库连接 -- 这个就得改成我自己创建的数据库了
spring.datasource.url=jdbc:mysql://192.168.209.129:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=ljh
spring.datasource.password=@Ljh123456@
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
### xxl-job, email 邮件告警配置
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=xxx@qq.com
spring.mail.from=xxx@qq.com
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
### xxl-job, access token 安全令牌
xxl.job.accessToken=default_token
### xxl-job, timeout by second, default 3s 调度中心触发任务时的 HTTP 超时时间(秒)。默认 3 秒,一般够用
xxl.job.timeout=3
### xxl-job, i18n (default is zh_CN, and you can choose "zh_CN", "zh_TC" and "en")
#管理后台语言(zh_CN = 简体中文,zh_TC = 繁体,en = 英文)
xxl.job.i18n=zh_CN
## xxl-job, triggerpool max size 触发线程池
#fast:快速任务(<3s),最多 300 线程
xxl.job.triggerpool.fast.max=300
#slow:慢任务(≥3s),最多 200 线程
xxl.job.triggerpool.slow.max=200
### xxl-job, log retention days 日志保留天数
xxl.job.logretentiondays=30
### xxl-sso 单点登录相关,基本不用动
xxl-sso.token.key=xxl_job_login_token
# 有效期7天
xxl-sso.token.timeout=604800000
xxl-sso.client.excluded.paths=
xxl-sso.client.login.path=/auth/login
访问:
直接执行启动类即可
http://localhost:23333/xxl-job-admin/#/xxl-job-admin/dashboard
账号密码是默认的:
账号:admin
密码:123456


部署到服务器:
打包

然后找到 admin 模块的 jar 即可

本地上传到虚拟机
PowerShell 是 Windows 的"超级命令行终端",类似 Linux 的 Bash;
在PowerShell用 scp 命令复制上传到linux;
虚拟机存放jar包的路径是我自己创建的,用于短期使用,如果是生产级别的,路径就需要严格划分。
到指定位置执行这个命令
scp xxl-job-admin-3.4.0-SNAPSHOT.jar ljh@192.168.209.129:/home/ljh/nfturbo/middleware/xxl-job/my-jar

上传成功

虚拟机后台执行jar包
cd /home/ljh/nfturbo/middleware/xxl-job/my-jar
到指定位置执行,后台运行这个jar包
nohup java -jar xxl-job-admin-3.4.0-SNAPSHOT.jar > xxl-job-admin.out 2>&1 &
使用 nohup 结合 & 是 Linux 上最简单的方式,让你的 JAR 包在后台运行,并且即使你退出 SSH/终端、关闭会话也不会停止(nohup 忽略 SIGHUP 信号)。
> xxl-job-admin.out:标准输出(日志)写入这个文件
2>&1:标准错误也写入同一个文件(否则错误会丢到 nohup.out 或终端)
&:放到后台运行
查看是否启动成功
1、查看进程
查看是否启动成功,有进程只是代买
ps -ef | grep xxl-job-admin

2、查看日志
上面的启动jar包命令,把xxl-job-admin 的日志输出在 xxl-job-admin.out 这个文件里面,所以日志在这个文件里面查看
tail -n 50 xxl-job-admin.out
报错信息

java
Caused by: java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[file] - Failed to create parent directories for [/data/applogs/xxl-job/xxl-job-admin.log]
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[file] - openFile(/data/applogs/xxl-job/xxl-job-admin.log,true) call failed. java.io.FileNotFoundException: /data/applogs/xxl-job/xxl-job-admin.log (No such file or directory)
Suppressed: java.io.FileNotFoundException: /data/applogs/xxl-job/xxl-job-admin.log (No such file or directory)
at java.base/java.io.FileOutputStream.open0(Native Method)
处理
意思是 XXL-Job Admin 启动时,尝试写日志文件 /data/applogs/xxl-job/xxl-job-admin.log,但是找不到这个路径。Spring Boot + Logback 会在启动时创建日志文件,如果目录不存在,就会报这个错误。
1、在对应位置创建文件夹
sudo mkdir -p /data/applogs/xxl-job
2、给文件夹赋予权限
sudo chown -R $(whoami):$(whoami) /data/applogs/xxl-job
3、重启jar包
nohup java -jar xxl-job-admin-3.4.0-SNAPSHOT.jar > xxl-job-admin.out 2>&1 &
4、再次查看日志
tail -n 50 xxl-job-admin.out
可以看到日志没有问题

日志的位置

部署成功
http://192.168.209.129:23333/xxl-job-admin/#/xxl-job-admin/dashboard
