服务迁移

This commit is contained in:
2025-12-23 11:01:11 +08:00
parent 8538246dd0
commit 58cba08726
69 changed files with 2299 additions and 61 deletions

View File

@@ -1,5 +1,6 @@
package com.sdm.flowable.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -33,33 +34,43 @@ public class AsyncTaskRecord implements Serializable {
private Long id;
@ApiModelProperty(value = "异步任务唯一标识,全局唯一,用于定位单个异步任务")
@TableField(value = "asyncTaskId")
private String asyncTaskId;
@ApiModelProperty(value = "流程实例ID关联工作流引擎的流程实例如Camunda的processInstanceId")
@TableField(value = "processInstanceId")
private String processInstanceId;
@ApiModelProperty(value = "流程执行ID关联工作流引擎的执行实例如Camunda的executionId")
@TableField(value = "executionId")
private String executionId;
@ApiModelProperty(value = "接收任务ID关联工作流中接收任务节点的ID用于异步回调触发流程继续")
@TableField(value = "receiveTaskId")
private String receiveTaskId;
@ApiModelProperty(value = "业务处理器类型标识任务对应的业务处理逻辑例如HPC(高性能计算)/OCR(图文识别)/AI(智能分析)")
@TableField(value = "handlerType")
private String handlerType;
@ApiModelProperty(value = "任务请求参数JSON格式字符串存储触发异步任务时的入参信息")
@TableField(value = "requestJson")
private String requestJson;
@ApiModelProperty(value = "任务执行结果JSON格式字符串存储异步任务完成后的返回数据成功/失败均记录)")
@TableField(value = "resultJson")
private String resultJson;
@ApiModelProperty(value = "任务状态INIT(初始化)/RUNNING(执行中)/SUCCESS(执行成功)/FAIL(执行失败)")
@TableField(value = "status")
private String status;
@ApiModelProperty(value = "任务创建时间,默认当前时间")
@TableField(value = "createTime")
private LocalDateTime createTime;
@ApiModelProperty(value = "任务更新时间,数据变更时自动更新为当前时间")
@TableField(value = "updateTime")
private LocalDateTime updateTime;

View File

@@ -0,0 +1,40 @@
server:
port: 7106
spring:
application:
name: flowable
datasource:
url: jdbc:mysql://192.168.190.161:3306/flowable?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: mysql
driver-class-name: com.mysql.cj.jdbc.Driver
flowable:
# ?????????
database-schema-update: true
# ??????JOB
async-executor-activate: true
cloud:
nacos:
discovery:
server-addr: 192.168.190.161:8848
group: DEV_GROUP
enabled: true
logging:
level:
org:
flowable: INFO
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
type-aliases-package: com.sdm.flowable.model.entity
configuration:
map-underscore-to-camel-case: true
global-config:
db-config:
id-type: auto
security:
whitelist:
paths:
- /process/testHpc
- /process/asyncCallback

View File

@@ -0,0 +1,13 @@
#!/bin/bash
# Spring Boot 项目日志查看脚本
LOG_HOME="/home/app/flowable/logs"
LOG_FILE="${LOG_HOME}/running.log"
# 查看实时日志
if [ ! -f "${LOG_FILE}" ]; then
echo "日志文件不存在:${LOG_FILE}(可能项目未启动)"
exit 1
fi
echo "正在查看实时运行日志(按 Ctrl+C 退出)... 日志路径:${LOG_FILE}"
tail -f "${LOG_FILE}"

View File

@@ -0,0 +1,25 @@
#!/bin/bash
# Spring Boot 项目重启脚本
# 定义基础路径(公共参数)
BASE_DIR="/home/app/flowable"
echo "=== 开始重启项目 ==="
# 先停止服务
if [ -f "${BASE_DIR}/stop.sh" ]; then
"${BASE_DIR}/stop.sh"
else
echo "错误:未找到停止脚本 ${BASE_DIR}/stop.sh"
exit 1
fi
# 再启动服务
if [ -f "${BASE_DIR}/start.sh" ]; then
"${BASE_DIR}/start.sh"
else
echo "错误:未找到启动脚本 ${BASE_DIR}/start.sh"
exit 1
fi
echo "=== 重启操作完成 ==="

View File

@@ -0,0 +1,45 @@
#!/bin/bash
# Spring Boot 项目启动脚本
JAR_PATH="/home/app/flowable"
JAR_NAME="flowable-0.0.1-SNAPSHOT.jar"
FULL_JAR_PATH="${JAR_PATH}/${JAR_NAME}"
# 与logback.xml保持一致的日志路径
LOG_HOME="/home/app/flowable/logs"
LOG_FILE="${LOG_HOME}/running.log"
# JVM参数
JVM_OPTS="-Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_HOME}/heapdump.hprof"
# 函数定义
check_jar_exists() {
if [ ! -f "${FULL_JAR_PATH}" ]; then
echo "ERROR: Jar包不存在路径${FULL_JAR_PATH}"
exit 1
fi
}
get_running_pid() {
ps -ef | grep "${JAR_NAME}" | grep -v "grep" | awk '{print $2}'
}
# 检查是否已运行
PID=$(get_running_pid)
if [ -n "${PID}" ]; then
echo "项目已在运行中PID: ${PID}"
exit 0
fi
# 检查Jar包是否存在
check_jar_exists
# 确保日志目录存在
if [ ! -d "${LOG_HOME}" ]; then
mkdir -p "${LOG_HOME}"
echo "日志目录不存在,已自动创建:${LOG_HOME}"
fi
# 启动项目
echo "正在启动项目..."
nohup java ${JVM_OPTS} -Dspring.profiles.active=dev-190 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5003 -jar "${FULL_JAR_PATH}" > "${LOG_FILE}" 2>&1 &

View File

@@ -0,0 +1,20 @@
#!/bin/bash
# Spring Boot 项目状态查询脚本
JAR_NAME="flowable-0.0.1-SNAPSHOT.jar"
LOG_HOME="/home/app/flowable/logs"
LOG_FILE="${LOG_HOME}/running.log"
# 函数定义
get_running_pid() {
ps -ef | grep "${JAR_NAME}" | grep -v "grep" | awk '{print $2}'
}
# 查看服务状态
PID=$(get_running_pid)
if [ -n "${PID}" ]; then
echo "项目运行中PID: ${PID}"
echo "日志文件路径:${LOG_FILE}"
else
echo "项目未在运行中"
fi

View File

@@ -0,0 +1,40 @@
#!/bin/bash
# Spring Boot 项目停止脚本
JAR_NAME="flowable-0.0.1-SNAPSHOT.jar"
# 函数定义
get_running_pid() {
ps -ef | grep "${JAR_NAME}" | grep -v "grep" | awk '{print $2}'
}
# 停止服务
PID=$(get_running_pid)
if [ -z "${PID}" ]; then
echo "项目未在运行中,无需停止"
exit 0
fi
echo "正在停止项目... PID: ${PID}"
kill -15 "${PID}"
WAIT=0
while [ ${WAIT} -lt 10 ]; do
if [ -z "$(get_running_pid)" ]; then
echo "项目已优雅停止"
exit 0
fi
sleep 1
WAIT=$((WAIT + 1))
done
echo "优雅停止超时,强制终止进程... PID: ${PID}"
kill -9 "${PID}"
sleep 2
if [ -z "$(get_running_pid)" ]; then
echo "项目已强制停止"
else
echo "ERROR: 进程终止失败请手动检查ps -ef | grep ${JAR_NAME}"
exit 1
fi

View File

@@ -0,0 +1,13 @@
#!/bin/bash
# Spring Boot 项目日志查看脚本
LOG_HOME="/home/app/flowable/logs"
LOG_FILE="${LOG_HOME}/running.log"
# 查看实时日志
if [ ! -f "${LOG_FILE}" ]; then
echo "日志文件不存在:${LOG_FILE}(可能项目未启动)"
exit 1
fi
echo "正在查看实时运行日志(按 Ctrl+C 退出)... 日志路径:${LOG_FILE}"
tail -f "${LOG_FILE}"

View File

@@ -0,0 +1,40 @@
#!/bin/bash
# Spring Boot 项目停止脚本
JAR_NAME="flowable-0.0.1-SNAPSHOT.jar"
# 函数定义
get_running_pid() {
ps -ef | grep "${JAR_NAME}" | grep -v "grep" | awk '{print $2}'
}
# 停止服务
PID=$(get_running_pid)
if [ -z "${PID}" ]; then
echo "项目未在运行中,无需停止"
exit 0
fi
echo "正在停止项目... PID: ${PID}"
kill -15 "${PID}"
WAIT=0
while [ ${WAIT} -lt 10 ]; do
if [ -z "$(get_running_pid)" ]; then
echo "项目已优雅停止"
exit 0
fi
sleep 1
WAIT=$((WAIT + 1))
done
echo "优雅停止超时,强制终止进程... PID: ${PID}"
kill -9 "${PID}"
sleep 2
if [ -z "$(get_running_pid)" ]; then
echo "项目已强制停止"
else
echo "ERROR: 进程终止失败请手动检查ps -ef | grep ${JAR_NAME}"
exit 1
fi