first commit
This commit is contained in:
52
mes-extension/mes-extension-schedule-server/pom.xml
Normal file
52
mes-extension/mes-extension-schedule-server/pom.xml
Normal file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>top.wms</groupId>
|
||||
<artifactId>wms-extension</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>wms-extension-schedule-server</artifactId>
|
||||
<description>任务调度服务端</description>
|
||||
|
||||
<properties>
|
||||
<!-- SnailJob 服务端 -->
|
||||
<snail-job.version>1.2.0</snail-job.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!-- SnailJob(灵活,可靠和快速的分布式任务重试和分布式任务调度平台) -->
|
||||
<dependency>
|
||||
<groupId>com.aizuda</groupId>
|
||||
<artifactId>snail-job-server-starter</artifactId>
|
||||
<version>${snail-job.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Liquibase(用于管理数据库版本,跟踪、管理和应用数据库变化) -->
|
||||
<dependency>
|
||||
<groupId>org.liquibase</groupId>
|
||||
<artifactId>liquibase-core</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<!-- 设置构建的 jar 包名 -->
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@@ -0,0 +1,43 @@
|
||||
package top.wms.admin.extension.scheduling;
|
||||
|
||||
import cn.hutool.core.net.NetUtil;
|
||||
import cn.hutool.core.util.URLUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
|
||||
/**
|
||||
* 任务调度服务端启动程序
|
||||
*
|
||||
* @author KAI
|
||||
* @since 2024/6/25 22:24
|
||||
*/
|
||||
@Slf4j
|
||||
@SpringBootApplication
|
||||
@RequiredArgsConstructor
|
||||
public class ScheduleServerApplication extends com.aizuda.snailjob.server.SnailJobServerApplication implements ApplicationRunner {
|
||||
|
||||
private final ServerProperties serverProperties;
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(ScheduleServerApplication.class, args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) {
|
||||
String hostAddress = NetUtil.getLocalhostStr();
|
||||
Integer port = serverProperties.getPort();
|
||||
String contextPath = serverProperties.getServlet().getContextPath();
|
||||
String baseUrl = URLUtil.normalize("%s:%s%s".formatted(hostAddress, port, contextPath));
|
||||
log.info("----------------------------------------------");
|
||||
log.info("{} service started successfully.", SpringUtil.getApplicationName());
|
||||
log.info("访问地址:{}", baseUrl);
|
||||
log.info("在线文档:https://snailjob.opensnail.com");
|
||||
log.info("----------------------------------------------");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
server:
|
||||
port: 9203
|
||||
|
||||
--- ### 数据源配置
|
||||
spring.datasource:
|
||||
# url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:continew_job}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
|
||||
# username: ${DB_USER:root}
|
||||
# password: ${DB_PWD:root}
|
||||
|
||||
url: jdbc:mysql://${DB_HOST:192.168.2.30}:${DB_PORT:3306}/${DB_NAME:continew_job}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
|
||||
username: ${DB_USER:root}
|
||||
password: ${DB_PWD:SQLsql123}
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
## Liquibase 配置
|
||||
spring.liquibase:
|
||||
# 是否启用
|
||||
enabled: true
|
||||
# 配置文件路径
|
||||
change-log: classpath:/db/changelog/db.changelog-master.yaml
|
||||
|
||||
--- ### Snail Job 服务端配置
|
||||
snail-job:
|
||||
# Netty 端口
|
||||
netty-port: 1788
|
||||
# 合并日志默认保存天数
|
||||
merge-Log-days: 1
|
||||
# 合并日志默认的条数
|
||||
merge-Log-num: 500
|
||||
# 配置日志保存时间(单位:天)
|
||||
log-storage: 90
|
||||
# 配置每批次拉取重试数据的大小
|
||||
retry-pull-page-size: 100
|
||||
# 配置一个客户端每秒最多接收的重试数量指令
|
||||
limiter: 10
|
||||
# 配置号段模式下的步长
|
||||
step: 100
|
||||
# bucket 的总数量
|
||||
bucket-total: 128
|
||||
# Dashboard 任务容错天数
|
||||
summary-day: 7
|
||||
# 配置负载均衡周期时间
|
||||
load-balance-cycle-time: 10
|
||||
## 回调配置
|
||||
callback:
|
||||
# 回调 uniqueId 前缀
|
||||
prefix: CB
|
||||
# 配置回调的最大执行次数
|
||||
max-count: 288
|
||||
# 配置回调触发的间隔时间
|
||||
trigger-interval: 900
|
||||
|
||||
--- ### 日志配置
|
||||
logging:
|
||||
level:
|
||||
com.aizuda.snailjob: DEBUG
|
||||
file:
|
||||
path: ./logs
|
||||
@@ -0,0 +1,58 @@
|
||||
server:
|
||||
port: 18001
|
||||
|
||||
--- ### 数据源配置
|
||||
spring.datasource:
|
||||
url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:wms_admin_job}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
|
||||
username: ${DB_USER:root}
|
||||
password: ${DB_PWD:123456}
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
# # PostgreSQL 配置
|
||||
# url: jdbc:postgresql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:wms_admin_job}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
|
||||
# username: ${DB_USER:root}
|
||||
# password: ${DB_PWD:123456}
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
## Liquibase 配置
|
||||
spring.liquibase:
|
||||
# 是否启用
|
||||
enabled: true
|
||||
# 配置文件路径
|
||||
change-log: classpath:/db/changelog/db.changelog-master.yaml
|
||||
|
||||
--- ### Snail Job 服务端配置
|
||||
snail-job:
|
||||
# Netty 端口
|
||||
netty-port: 1788
|
||||
# 合并日志默认保存天数
|
||||
merge-Log-days: 1
|
||||
# 合并日志默认的条数
|
||||
merge-Log-num: 500
|
||||
# 配置日志保存时间(单位:天)
|
||||
log-storage: 90
|
||||
# 配置每批次拉取重试数据的大小
|
||||
retry-pull-page-size: 100
|
||||
# 配置一个客户端每秒最多接收的重试数量指令
|
||||
limiter: 10
|
||||
# 配置号段模式下的步长
|
||||
step: 100
|
||||
# bucket 的总数量
|
||||
bucket-total: 128
|
||||
# Dashboard 任务容错天数
|
||||
summary-day: 7
|
||||
# 配置负载均衡周期时间
|
||||
load-balance-cycle-time: 10
|
||||
## 回调配置
|
||||
callback:
|
||||
# 回调 uniqueId 前缀
|
||||
prefix: CB
|
||||
# 配置回调的最大执行次数
|
||||
max-count: 288
|
||||
# 配置回调触发的间隔时间
|
||||
trigger-interval: 900
|
||||
|
||||
--- ### 日志配置
|
||||
logging:
|
||||
level:
|
||||
com.aizuda.snailjob: INFO
|
||||
file:
|
||||
path: ../logs
|
||||
@@ -0,0 +1,12 @@
|
||||
--- ### Spring 配置
|
||||
spring:
|
||||
application:
|
||||
name: wms-admin-schedule-server
|
||||
## 环境配置
|
||||
profiles:
|
||||
# 启用的环境
|
||||
active: dev
|
||||
|
||||
--- ### 日志配置
|
||||
logging:
|
||||
config: classpath:logback-spring.xml
|
||||
@@ -0,0 +1,5 @@
|
||||
databaseChangeLog:
|
||||
- include:
|
||||
file: db/changelog/mysql/snail-job_table.sql
|
||||
- include:
|
||||
file: db/changelog/mysql/snail-job_data.sql
|
||||
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration debug="false" scan="true" scanPeriod="30 seconds">
|
||||
|
||||
<!-- 关闭 Logback 的状态监听器(通过更换默认状态监听器实现) -->
|
||||
<statusListener class="ch.qos.logback.core.status.NopStatusListener"/>
|
||||
|
||||
<!-- 应用名 -->
|
||||
<springProperty name="APP_NAME" source="spring.application.name" scope="context"/>
|
||||
<!-- 保存路径 -->
|
||||
<property name="LOG_PATH" value="${LOG_PATH:-./logs/job-server}"/>
|
||||
<!-- 字符集 -->
|
||||
<property name="LOG_CHARSET" value="utf-8"/>
|
||||
<!-- 格式化输出:%d 表示日期;%thread 表示线程名;%-5level:级别从左显示 5 个字符宽度;%msg:日志消息;%n 是换行符 -->
|
||||
<!-- 控制台输出格式(带颜色) -->
|
||||
<property name="CONSOLE_LOG_PATTERN" value="%red(%d{yyyy-MM-dd HH:mm:ss}) %highlight(%-5level) %green([%thread]) %boldMagenta(%logger{50}) - %msg%n"/>
|
||||
<!-- 文件输出格式 -->
|
||||
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{50} - %msg%n"/>
|
||||
<!-- 单个日志文件大小上限 -->
|
||||
<property name="FILE_MAX_SIZE" value="20MB"/>
|
||||
|
||||
<!-- 输出日志到控制台 -->
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
|
||||
<charset>${LOG_CHARSET}</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 输出日志到控制台(不带颜色) -->
|
||||
<appender name="CONSOLE_PROD" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||
<charset>${LOG_CHARSET}</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 输出日志到文件 -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||
<file>${LOG_PATH}/${APP_NAME}.log</file>
|
||||
<!-- 滚动策略:基于文件大小和时间归档日志文件 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!-- 日志文件的路径及文件名 -->
|
||||
<fileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/${APP_NAME}.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<!-- 日志文件大小(超过指定大小后,会切分新文件,从索引 0 开始计数,例如:app.2024-01-01.1.log.gz ) -->
|
||||
<maxFileSize>${FILE_MAX_SIZE}</maxFileSize>
|
||||
<!-- 日志保留天数 -->
|
||||
<maxHistory>${FILE_MAX_HISTORY}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||
<charset>${LOG_CHARSET}</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 输出日志到文件(异步) -->
|
||||
<appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<!-- 不丢失日志,默认:如果队列的 80% 已满,则会丢弃 TRACT、DEBUG、INFO 级别的日志 -->
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<!-- 更改默认的队列的深度,该值会影响性能,默认:256 -->
|
||||
<queueSize>512</queueSize>
|
||||
<!-- 添加附加的 appender,最多只能添加一个 -->
|
||||
<appender-ref ref="FILE"/>
|
||||
</appender>
|
||||
|
||||
<!-- Snail Job Server -->
|
||||
<appender name="JOB_SERVER" class="com.aizuda.snailjob.server.common.appender.SnailJobServerLogbackAppender" />
|
||||
|
||||
<!-- 开发环境:只打印到控制台 -->
|
||||
<springProfile name="dev">
|
||||
<!-- 如果配置的日志等级,和 application.yml 中的日志等级配置重叠,application.yml 配置优先级高 -->
|
||||
<root level="INFO">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="JOB_SERVER"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
<!-- 生产环境:打印到控制台并输出到文件 -->
|
||||
<springProfile name="prod">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="CONSOLE_PROD"/>
|
||||
<appender-ref ref="ASYNC_FILE"/>
|
||||
<appender-ref ref="JOB_SERVER"/>
|
||||
</root>
|
||||
<!-- 日志保留天数(根据国家法律,网络运行状态、网络安全事件、个人敏感信息操作等相关记录,留存的日志不少于六个月,并且进行网络多机备份。) -->
|
||||
<property name="FILE_MAX_HISTORY" value="180"/>
|
||||
</springProfile>
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user