first commit

This commit is contained in:
zc
2026-06-12 14:59:24 +08:00
commit 7ea86a123c
405 changed files with 25730 additions and 0 deletions

View 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>

View File

@@ -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("----------------------------------------------");
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,12 @@
--- ### Spring 配置
spring:
application:
name: wms-admin-schedule-server
## 环境配置
profiles:
# 启用的环境
active: dev
--- ### 日志配置
logging:
config: classpath:logback-spring.xml

View File

@@ -0,0 +1,5 @@
databaseChangeLog:
- include:
file: db/changelog/mysql/snail-job_table.sql
- include:
file: db/changelog/mysql/snail-job_data.sql

View File

@@ -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>

17
mes-extension/pom.xml Normal file
View File

@@ -0,0 +1,17 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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-admin</artifactId>
<version>${revision}</version>
</parent>
<artifactId>wms-extension</artifactId>
<packaging>pom</packaging>
<description>扩展模块(存放其他扩展模块)</description>
<modules>
<module>wms-extension-schedule-server</module>
</modules>
</project>