Linux服务器部署XXL-JOB

参考文档及下载地址:分布式任务调度平台XXL-JOB

1 从git拉取XXL-JOB代码

我们的大部分变动,是发生在xxl-job-admin,最终将这个模块打包成jar包部署在linux服务器上。

2 执行数据库脚本

bash 复制代码
doc\db\tables_xxl_job.sql

3 修改pom文件,增加依赖

java 复制代码
		<dependency>
			<groupId>com.github.ulisesbocchio</groupId>
			<artifactId>jasypt-spring-boot-starter</artifactId>
            <!-- 用于配置文件密码加密 -->
			<version>2.0.0</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.2.9</version>
		</dependency>

		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-core</artifactId>
			<version>9.0.71</version>
		</dependency>

4 修改配置文件

不要直接粘贴复制,重点修改端号(不要存在冲突)、数据库配置(ENC加密,需要配置秘钥,我这里是手动生成的一个jasypt.encryptor.password=123456)、设置accessToken

配置文件如何给密码加密移步另外一篇文章

java 复制代码
### web
server.port=8080
server.servlet.context-path=/xxl-job-admin

### actuator
management.server.servlet.context-path=/actuator
management.health.mail.enabled=false

### resources
spring.mvc.servlet.load-on-startup=0
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static/

### freemarker
spring.freemarker.templateLoaderPath=classpath:/templates/
spring.freemarker.suffix=.ftl
spring.freemarker.charset=UTF-8
spring.freemarker.request-context-attribute=request
spring.freemarker.settings.number_format=0.##########

### mybatis
mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml
#mybatis.type-aliases-package=com.xxl.job.admin.core.model

### xxl-job, datasource
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=ENC(root_pwd)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

### datasource-pool
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
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=HikariCP
spring.datasource.hikari.max-lifetime=900000
spring.datasource.hikari.connection-timeout=10000
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.hikari.validation-timeout=1000

### 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, i18n (default is zh_CN, and you can choose "zh_CN", "zh_TC" and "en")
xxl.job.i18n=zh_CN

## xxl-job, triggerpool max size
xxl.job.triggerpool.fast.max=200
xxl.job.triggerpool.slow.max=100

### xxl-job, log retention days
xxl.job.logretentiondays=30

jasypt.encryptor.password=123456

5 修改日志文件(可选)

建议修改,线上项目规范化

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">

    <contextName>logback</contextName>
    <property name="log.path" value="/apprun/logs/xxl-job"/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/xxl-admin.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/xxl-admin.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
            </pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>

</configuration>

6 打包

网上很多说直接打包xxl-job-admin模块的,这样容易报错:

java 复制代码
Failure to find com.xuxueli:xxl-job:pom:2.4.1-SNAPSHOT in http://maven.aliyun.com/nexus/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of alimaven has elapsed or updates are forced

原因好像发生在aliyun没有xxl-job-core的依赖包,不能直接在xxl-job-admin模块打包。

解决办法是直接在根目录,运行mvn package命令

7 本地测试

运行XxlJobAdminApplication,本地访问

http://localhost:8080/xxl-job-admin

默认账号密码:admin,123456

8 部署并启动

将这个jar包放在linux服务器上,并使用后台运行

bash 复制代码
nohup java -jar xxl-job-admin-2.4.1-SNAPSHOT.jar &

这是一篇部署xxljob服务的文章,后续有时间继续肝部署xxljob执行器的文章!!!

相关推荐
稚辉君.MCA_P8_Java16 小时前
Gemini永久会员 快速排序(Quick Sort) 基于分治思想的高效排序算法
java·linux·数据结构·spring·排序算法
x***440116 小时前
linux 设置tomcat开机启动
linux·运维·tomcat
2301_8049475817 小时前
nginx的https的搭建
运维·nginx·https
K***430617 小时前
httpslocalhostindex 配置的nginx,一刷新就报404了
运维·nginx
于齐龙17 小时前
服务器常见问题-FAQ
服务器
正在努力的小河17 小时前
Linux 块设备驱动实验
linux·运维·服务器
Alex Gram17 小时前
四款主流数据库同步中间件详解
中间件·数据库同步·数据库同步中间件
h***673717 小时前
Prometheus(普罗米修斯)----- Nginx监控
运维·nginx·prometheus
颜颜yan_17 小时前
基于CANN多Stream异步执行的智能推理管道:突破传统串行瓶颈
运维·架构·stream·昇腾·cann
wadesir17 小时前
Nginx配置文件CPU优化(从零开始提升Web服务器性能)
服务器·前端·nginx