feat:[REQ-3282] 修改程序运行异常问题

This commit is contained in:
liuyang 2024-12-10 14:40:19 +08:00
parent 4ac7554f94
commit c1108dd54a
18 changed files with 243 additions and 66 deletions

View File

@ -7,10 +7,6 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class CreateOrgUnitReq implements Serializable {
}

View File

@ -13,4 +13,6 @@ import java.io.Serializable;
@Builder
public class ListOrgUnitReq implements Serializable {
private String test;
}

View File

@ -7,10 +7,6 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class UpdateOrgUnitReq implements Serializable {
}

View File

@ -6,11 +6,9 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class CreateOrgUnitResp implements Serializable {
private String test;
}

View File

@ -6,11 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class ListOrgUnitResp implements Serializable {
}

View File

@ -1,16 +1,9 @@
package cn.axzo.orgmanax.api.unit.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class UpdateOrgUnitResp implements Serializable {
}

View File

@ -1,26 +1,21 @@
package cn.axzo.orgmanax.infra.config;
import cn.axzo.foundation.web.support.AppRuntime;
import cn.axzo.foundation.web.support.apps.AppCenter;
import cn.axzo.foundation.web.support.apps.AppCenterImpl;
import cn.axzo.foundation.web.support.config.DefaultWebMvcConfig;
import cn.axzo.foundation.web.support.exception.AbstractExceptionHandler;
import cn.axzo.foundation.web.support.log.RequestLogAspect;
import cn.axzo.foundation.web.support.rpc.RpcClient;
import cn.axzo.foundation.web.support.rpc.RpcClientImpl;
import cn.axzo.orgmanax.infra.event.config.RocketMQEventConfig;
import com.google.common.collect.ImmutableMap;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration;
import org.springframework.boot.task.TaskExecutorBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.AsyncAnnotationBeanPostProcessor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.function.Consumer;
import static org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration.APPLICATION_TASK_EXECUTOR_BEAN_NAME;
@ -70,4 +65,9 @@ public class Config {
};
}
@Bean
AppRuntime appRuntime(ApplicationContext applicationContext) {
return AppRuntime.builder().applicationContext(applicationContext).build();
}
}

View File

@ -12,12 +12,4 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor
public class MQEventProducer {
/**
* rocket
*/
private final EventProducer eventProducer;
}

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<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>cn.axzo.orgmanax</groupId>
<artifactId>orgmanax</artifactId>
<version>${revision}</version>
</parent>
<artifactId>orgmanax-integration</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.apollo</groupId>
<artifactId>apollo-api</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

View File

@ -23,7 +23,6 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor
public class CreateNodeProcessor implements NodeProcessor {
private final NodeFoundationService nodeFoundationService;
private final EventProducer eventProducer;
@Override
public ProcessResult process(ProcessContext context) {
@ -32,7 +31,7 @@ public class CreateNodeProcessor implements NodeProcessor {
// basic check
param.check();
// 创建普通部门数据
ProcessOrgNodeResp processOrgNodeResp = nodeFoundationService.create(null);
ProcessOrgNodeResp processOrgNodeResp = null; // nodeFoundationService.create(null);
// 发送部门创建MQ消息 - 业务事件
// eventProducer.send(null);

View File

@ -32,7 +32,7 @@ public class CreateTeamProcessor implements NodeProcessor {
// 班组长 check 不能是其他班组的班组长
// 1. 创建普通部门
ProcessOrgNodeResp processOrgNodeResp = nodeFoundationService.create(null);
// ProcessOrgNodeResp processOrgNodeResp = nodeFoundationService.create(null);
// 2. 创建班组长nodeUser
// nodeUserFoundationService.create(null);
@ -45,7 +45,8 @@ public class CreateTeamProcessor implements NodeProcessor {
// eventProducer.send(null);
// 返回数据
return ProcessResult.success((JSONObject) JSONObject.toJSON(processOrgNodeResp));
// return ProcessResult.success((JSONObject) JSONObject.toJSON(processOrgNodeResp));
return null;
}
@NoArgsConstructor

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 导入安心筑全局日志配置 -->
<include resource="logback/logback-axzo.xml"/>
<!-- 覆盖开发环境日志配置 -->
<springProfile name="local,dev,test">
<logger name="cn.axzo" level="DEBUG"/>
</springProfile>
</configuration>

32
orgmanax-starter/pom.xml Normal file
View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<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>cn.axzo.orgmanax</groupId>
<artifactId>orgmanax</artifactId>
<version>${revision}</version>
</parent>
<groupId>cn.axzo.orgmanax</groupId>
<artifactId>orgmanax-starter</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.orgmanax</groupId>
<artifactId>orgmanax-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.orgmanax</groupId>
<artifactId>orgmanax-infra</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.orgmanax</groupId>
<artifactId>orgmanax-integration</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.server;
package cn.axzo.orgmanax;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
@ -6,20 +6,18 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
import static cn.axzo.orgmanax.server.OrgmanaxApplication.DEFAULT_DIR;
/**
* @author tanjie@axzo.cn
* @date 2024/11/28 15:54
*/
@SpringBootApplication(scanBasePackages = DEFAULT_DIR)
@SpringBootApplication(scanBasePackages = Application.DEFAULT_DIR)
@Slf4j
public class OrgmanaxApplication {
public class Application {
public static final String DEFAULT_DIR = "cn.axzo.orgmanax";
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(OrgmanaxApplication.class, args);
ConfigurableApplicationContext run = SpringApplication.run(Application.class, args);
Environment env = run.getEnvironment();
log.info(
"--------------------------------------------------------------------------------------------------------------------\n" +

View File

@ -0,0 +1,55 @@
package cn.axzo.orgmanax;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
/**
* @author tanjie@axzo.cn
* @date 2024/11/28 15:54
*/
@SpringBootApplication(scanBasePackages = DevApplication.DEFAULT_DIR)
@Slf4j
public class DevApplication {
public static final String DEFAULT_DIR = "cn.axzo.orgmanax";
public static void main(String[] args) {
// System.setProperty("rocket.consumer.listeners.disable", "true");
System.setProperty("spring.profiles.active","dev");
System.setProperty("NACOS_HOST","https://dev-nacos.axzo.cn");
System.setProperty("NACOS_PORT","443");
System.setProperty("NACOS_NAMESPACE_ID","35eada10-9574-4db8-9fea-bc6a4960b6c7");
System.setProperty("CUSTOM_ENV","dev");
System.setProperty("spring.datasource.url","jdbc:mysql://172.16.2.171:3306/pudge?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=true&verifyServerCertificate=false&rewriteBatchedStatements=true");
System.setProperty("spring.redis.port","6379");
System.setProperty("spring.redis.host","172.16.2.219");
System.setProperty("spring.redis.database","5");
System.setProperty("spring.redis.password","!rHV2!fctYtV4vF");
System.setProperty("xxl.job.admin.addresses","http://dev-xxl-job.axzo.cn/xxl-job-admin");
System.setProperty("rocketmq.name-server", "172.16.2.82:9876");
SpringApplication application = new SpringApplication(DevApplication.class);
ConfigurableApplicationContext run = application.run(args);
Environment env = run.getEnvironment();
log.info(
"--------------------------------------------------------------------------------------------------------------------\n" +
"Application 【{}】 is running on 【{}】 environment!\n" +
"Api Local: \thttp://127.0.0.1:{}\n" +
"Mysql: \t{}\t username:{}\n" +
"Redis: \t{}:{}\t database:{}\n" +
"RabbitMQ: \t{}\t username:{}",
env.getProperty("spring.application.name"),
env.getProperty("spring.profiles.active"),
env.getProperty("server.port"),
env.getProperty("spring.datasource.url"),
env.getProperty("spring.datasource.username"),
env.getProperty("spring.redis.host"),
env.getProperty("spring.redis.port"),
env.getProperty("spring.redis.database"),
env.getProperty("spring.rabbitmq.addresses"),
env.getProperty("spring.rabbitmq.username") +
"\n----------------------------------------------------------");
}
}

View File

@ -27,4 +27,3 @@ spring:
# 优雅关闭
server:
shutdown: graceful

View File

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 引用 Spring Boot 的 logback 基础配置 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<springProperty scope="context" name="appName" source="spring.application.name"/>
<springProperty scope="context" name="LOG_PREFIX" source="logback.path" defaultValue="/mnt/app-logdata"/>
<property name="POD_NAMESPACE" value="${MY_POD_NAMESPACE:-local}"/>
<property name="LOG_FILE" value="${appName}.log"/>
<!--日志路径-->
<property name="LOG_PATH" value="${LOG_PREFIX}/${POD_NAMESPACE}/${appName}"/>
<!-- 日志最大的历史 7天 -->
<property name="MAX_HISTORY" value="7"/>
<!--默认日志输出模式-->
<property name="PATTERN_CONSOLE"
value="%date{HH:mm:ss} %highlight(%-5level) [%X{ctxLogId}] [%15thread] %cyan([%class{36}#%M:%L]) %msg%n"/>
<property name="PATTERN_FILE"
value="%date{yyyy-MM-dd HH:mm:ss} %-5level --- [%15thread] [%X{ctxLogId}] %logger: %msg%n"/>
<contextName>${appName}</contextName>
<!-- 控制台 Appender -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN_CONSOLE}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN_FILE}</pattern>
</layout>
</encoder>
<!-- 日志文件名 -->
<file>${LOG_PATH}/${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 滚动后的日志文件名 -->
<fileNamePattern>${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_PATH}/${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}</fileNamePattern>
<!-- 启动服务时,是否清理历史日志,一般不建议清理 -->
<cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
<!-- 日志文件,到达多少容量,进行滚动 -->
<maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>
<!-- 日志文件的总大小0 表示不限制 -->
<totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-1GB}</totalSizeCap>
<!-- 日志文件的保留天数 -->
<maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30}</maxHistory>
</rollingPolicy>
</appender>
<!-- 异步写入日志,提升性能 -->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志。默认的,如果队列的 80% 已满,则会丢弃 TRACT、DEBUG、INFO 级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能。默认值为 256 -->
<queueSize>256</queueSize>
<appender-ref ref="FILE"/>
</appender>
<!-- 控制台输出LOGSTASH JSON日志 -->
<appender name="LOGSTASH" class="ch.qos.logback.core.ConsoleAppender" addtivity="false">
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<fieldName>@timestamp</fieldName>
<pattern>yyyy-MM-dd'T'HH:mm:ss.SSSx</pattern>
<timeZone>GMT+8</timeZone>
</timestamp>
<pattern>
<pattern>
{
"app":"${appName}",
"level":"%level",
"traceId":"%X{ctxLogId}",
"thread":"%thread",
"class":"%logger{40}",
"message":"%replace(%message){'^(.{3000}).*$', '$1'}",
"error_level":"%X{errorLevel}",
"error_type":"%X{errorType}",
"stack_trace":"%exception{20}"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>
<!-- 本地环境 -->
<springProfile name="local">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</springProfile>
<springProfile name="dev,test,pre,live,default">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ASYNC"/>
</root>
</springProfile>
<!-- 其它环境 -->
<springProfile name="master">
<root level="INFO">
<appender-ref ref="LOGSTASH"/>
</root>
</springProfile>
</configuration>

View File

@ -18,7 +18,7 @@
<foundation-support-lib>2.0.0-SNAPSHOT</foundation-support-lib>
<spring-cloud-starter-alibaba-nacos.version>2021.1</spring-cloud-starter-alibaba-nacos.version>
<spring-cloud-starter-bootstrap.version>3.0.6</spring-cloud-starter-bootstrap.version>
<mybatis-plus.version>3.5.6</mybatis-plus.version>
<!-- <mybatis-plus.version>3.5.6</mybatis-plus.version>-->
<rocket-mq.version>2.2.3</rocket-mq.version>
<axzo-bom.version>2.0.0-SNAPSHOT</axzo-bom.version>
<axzo-dependencies.version>2.0.0-SNAPSHOT</axzo-dependencies.version>
@ -71,11 +71,6 @@
<artifactId>unittest-support-lib</artifactId>
<version>${foundation-support-lib}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
@ -119,5 +114,7 @@
<module>orgmanax-common</module>
<module>orgmanax-server</module>
<module>orgmanax-infra</module>
<module>orgmanax-starter</module>
<module>orgmanax-integration</module>
</modules>
</project>