xxl_job定时任务调度安装,jar包加入系统服务教程

一、介绍

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。本文将以该项目为例,演示如何部署生产项目到系统服务。

二、下载

1. 官方下载地址

https://github.com/xuxueli/xxl-job/releases

三、安装

1. 下载源码后,找到数据库SQL并初始化,SQL路径如图

在这里插入图片描述

2. 找到配置文件,配置初始化好后的数据库地址

在这里插入图片描述
该配置文件的其他属性简介如下

### 调度中心JDBC链接:链接地址请保持和 2.1章节 所创建的调度数据库的地址一致
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root_pwd
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

### 报警邮箱
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=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

### 调度中心通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=
### 调度中心国际化配置 [必填]: 默认为 "zh_CN"/中文简体, 可选范围为 "zh_CN"/中文简体, "zh_TC"/中文繁体 and "en"/英文;
xxl.job.i18n=zh_CN

## 调度线程池最大线程配置【必填】
xxl.job.triggerpool.fast.max=200
xxl.job.triggerpool.slow.max=100

### 调度中心日志表数据保存天数 [必填]:过期日志自动清理;限制大于等于7时生效,否则,-1,关闭自动清理功能;
xxl.job.logretentiondays=30

3. 在pom文件中加入以下配置,使jar变更为./可执行文件

在这里插入图片描述

<configuration>
   <!--表示打包后是可执行文件-->
    <executable>true</executable>
</configuration>

4. 编译打包jar(也可以本地先运行),这里就是属于项目部署了,随便那种打包方式都可以,当前选择加入到系统服务。先创建文件路径

mkdir -p /opt/xxl-job

5. 进入目录,并上传jar包到目录,并重命名为xxl-job、授权

cd /opt/xxl-job
chmod +x xxl-job.jar

6. 在同级目录创建同名conf文件

vi xxl-job.conf
export JAVA_HOME=/etc/graalvm-ce-java17-22.3.1

export JAVA_OPTS="-Xmx512m -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8"

这里指定了jdk和相关jvm优化信息。如果你是独立部署的生产级别应用,可以把堆内存设置大一点

export JAVA_HOME=/etc/graalvm-ce-java17-22.3.1

export JAVA_OPTS="-Xms2048m -Xmx2048m -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8"

授权

chmod +x xxl-job.conf

7. 然后将配置文件application.properties文件放到同级目录,这样后续更改这里的文件,直接重启项目就能生效

8. 创建系统服务

vi /etc/systemd/system/xxl-job.service

注意,文件里面不能识别末尾的# 文档注释,所以这里给了一份一样的,没有注释

[Unit]
Description=xxl-job-service 
After=syslog.target mysqld 

[Service]
User=root 
ExecStart=/opt/xxl-job/xxl-job.jar 
SuccessExitStatus=143 

[Install]
WantedBy=multi-user.target 
[Unit]
Description=xxl-job-service # 表示添加一个名叫xxl-job的系统服务
After=syslog.target mysqld # 表示在日志服务启动后再启动本服务,因为我mysql也在本机,所以这里先启动mysql

[Service]
User=root # 表示文件以root用户身份启动
LimitNOFILE=65535 # 文件句柄限制为65535
ExecStart=/opt/xxl-job/xxl-job.jar # 启动命令
SuccessExitStatus=143 # 成功的退出状态被特别设置为143
PrivateTmp=true # 每个服务都会在其私有的临时目录中运行,这个目录会在服务启动时创建,并在服务停止时删除

[Install]
WantedBy=multi-user.target # 表示这个服务应该在多用户模式下启动

9. 刷新服务配置

systemctl daemon-reload

10. 设置开机自启

systemctl enable xxl-job

11. 启动项目

systemctl start xxl-job

12. 默认账号密码

  • 访问地址:http://ip:8080/xxl-job-admin
  • 账号:admin
  • 密码:123456

四、其他系统服务常用命令

  • 启动:systemctl statr xxl-job
  • 关闭:systemctl stop xxl-job
  • 查看状态:systemctl status xxl-job
  • 开机自启:systemctl enable xxl-job
  • 停止开机自启:systemctl disable xxl-job
  • 刷新配置文件:systemctl daemon-reload
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果将定时任务写在其它服务中,需要在该服务中集成xxl-job的客户端SDK,并在代码中编写定时任务的执行逻辑,最后将该服务注册到xxl-job-admin后台,并在调度任务时指定该服务名和方法名。 具体步骤如下: 1. 引入xxl-job的客户端SDK:在项目的pom.xml文件中添加xxl-job-client依赖,或者手动下载xxl-job-client的jar包并导入项目。 2. 在代码中编写定时任务的执行逻辑:使用@XxlJob注解标记定时任务的执行方法,并在方法中编写任务的具体执行逻辑。@XxlJob注解中需要指定任务名称和任务参数,可以根据实际业务需求进行配置。 3. 注册服务xxl-job-admin后台:在xxl-job-admin的执行器管理页面中,点击“新增”按钮,填写执行器的基本信息,如执行器名称、执行器地址和执行器端口等。然后,在xxl-job-admin的任务管理页面中,点击“新增”按钮,填写任务的基本信息,如任务名称、任务描述等。在“任务执行”页面中,选择执行方式为“Bean模式”,并填写服务名和方法名,以调用该服务定时任务方法。 4. 启动服务:启动该服务,并保持服务的可用性和稳定性,以确保定时任务能够按时执行。 5. 手动触发定时任务:在xxl-job-admin的任务管理页面中,点击“执行”按钮,手动触发定时任务,查看任务执行结果是否正确。如果执行结果正确,可以按照Cron表达式配置任务的调度时间,xxl-job会自动按照配置的时间调度执行任务。 需要注意的是,将定时任务写在其它服务中需要进行二次开发,并且需要保证该服务的可用性和稳定性,以确保定时任务能够按时执行。同时,也需要关注任务的执行情况,及时排查任务执行异常和故障,以确保任务能够正常执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值