Compare commits
3 Commits
44955a91e9
...
7aceb760a2
| Author | SHA1 | Date | |
|---|---|---|---|
| 7aceb760a2 | |||
| 12f4059ba0 | |||
| 9e72d84b7e |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -146,3 +146,4 @@ fabric.properties
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
!/.xcodemap/
|
||||
!/tk-data-save.log
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.yupi.springbootinit.config;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@Configuration
|
||||
@EnableAsync
|
||||
public class AsyncConfig {
|
||||
@Bean
|
||||
public Executor taskExecutor() {
|
||||
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
||||
executor.setCorePoolSize(10); // 与 yaml 保持一致
|
||||
executor.setMaxPoolSize(20);
|
||||
executor.setQueueCapacity(200);
|
||||
executor.setThreadNamePrefix("save-task-");
|
||||
executor.initialize();
|
||||
return executor;
|
||||
}
|
||||
}
|
||||
@@ -99,8 +99,8 @@ public class ServerBigBrother {
|
||||
/**
|
||||
* 该数据所属的账号id
|
||||
*/
|
||||
@TableField(value = "owner_id")
|
||||
private String ownerId;
|
||||
@TableField(value = "user_id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 租户 Id
|
||||
|
||||
@@ -45,7 +45,7 @@ public class MQReceiver {
|
||||
// }
|
||||
|
||||
@RabbitListener(queues = "HOST_INFO_QUEUE")
|
||||
@Async
|
||||
@Async("taskExecutor")
|
||||
public void receive(List<NewHosts> hosts, Channel channel, Message message) throws IOException {
|
||||
long deliveryTag = message.getMessageProperties().getDeliveryTag();
|
||||
try {
|
||||
@@ -62,7 +62,7 @@ public class MQReceiver {
|
||||
}
|
||||
|
||||
@RabbitListener(queues = "BIG_BROTHER_QUEUE")
|
||||
@Async
|
||||
@Async("taskExecutor")
|
||||
public void bigBrotherReceive(ServerBigBrother bigBrotherList, Channel channel, Message message) throws IOException {
|
||||
long deliveryTag = message.getMessageProperties().getDeliveryTag();
|
||||
try {
|
||||
@@ -74,6 +74,7 @@ public class MQReceiver {
|
||||
} catch (Exception e) {
|
||||
channel.basicNack(deliveryTag, false, false);
|
||||
log.error("消息消费失败");
|
||||
log.error(e.getMessage());
|
||||
throw new BusinessException(ErrorCode.QUEUE_CONSUMPTION_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,6 @@ public class HostInfoServiceImpl extends ServiceImpl<NewHostsMapper, NewHosts> i
|
||||
|
||||
|
||||
@Override
|
||||
@Async("taskExecutor")
|
||||
public CompletableFuture<Void> saveHostInfo(List<NewHosts> newHosts) {
|
||||
try {
|
||||
StopWatch stopWatch = new StopWatch();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.yupi.springbootinit.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -24,13 +25,13 @@ public class ServerBigBrotherServiceImpl extends ServiceImpl<ServerBigBrotherMap
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Async("taskExecutor")
|
||||
public void saveData(ServerBigBrother bigBrother) {
|
||||
StopWatch stopWatch = new StopWatch();
|
||||
stopWatch.start();
|
||||
ServerBigBrother serverBigBrother = baseMapper.selectOne(Wrappers.<ServerBigBrother>lambdaQuery()
|
||||
.eq(ServerBigBrother::getDisplayId, bigBrother.getDisplayId())
|
||||
.eq(ServerBigBrother::getTenantId, bigBrother.getTenantId()));
|
||||
QueryWrapper<ServerBigBrother> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("display_id", bigBrother.getDisplayId())
|
||||
.eq("tenant_id", bigBrother.getTenantId());
|
||||
ServerBigBrother serverBigBrother = baseMapper.selectOne(queryWrapper);
|
||||
if(serverBigBrother == null){
|
||||
save(bigBrother);
|
||||
stopWatch.stop();
|
||||
|
||||
@@ -5,7 +5,7 @@ spring:
|
||||
task:
|
||||
# Spring 执行器配置,对应 TaskExecutionProperties 配置类。对于 Spring 异步任务,会使用该执行器。
|
||||
execution:
|
||||
thread-name-prefix: save-task # 线程池的线程名的前缀。默认为 task- ,建议根据自己应用来设置
|
||||
thread-name-prefix: save-task # 线程池的线程名的前缀。默认为 task- ,建议根据自己应用来设置
|
||||
pool: # 线程池相关
|
||||
core-size: 10 # 核心线程数,线程池创建时候初始化的线程数。默认为 8 。
|
||||
max-size: 20 # 最大线程数,线程池最大的线程数,只有在缓冲队列满了之后,才会申请超过核心线程数的线程。默认为 Integer.MAX_VALUE
|
||||
|
||||
@@ -1,31 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration scan="true" scanPeriod="60 seconds">
|
||||
<!-- 日志上下文名称 -->
|
||||
<contextName>TK-DataSave</contextName>
|
||||
|
||||
<!-- 日志输出格式 -->
|
||||
<property name="PATTERN_DEFAULT" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} | %highlight(${LOG_LEVEL_PATTERN:-%5p} ${PID:- }) | %boldYellow(%thread) %boldGreen(%-40.40logger{39}) | %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%ex}"/>
|
||||
<property name="FILE_PATTERN" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} | ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } | %thread %-40.40logger{39} | %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%ex}"/>
|
||||
<property name="LOG_FILE_PATH" value="${LOG_FILE:-${user.dir}/tk-data-save}"/>
|
||||
|
||||
<!-- <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>-->
|
||||
<!-- 日志文件路径 -->
|
||||
<property name="LOG_FILE_PATH" value="${LOG_FILE:-${user.dir}}/tk-data-save"/>
|
||||
|
||||
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${PATTERN_DEFAULT}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 文件输出 (滚动策略: 按时间) -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${LOG_FILE_PATH}.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${LOG_FILE_PATH}-%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<maxHistory>7</maxHistory>
|
||||
<totalSizeCap>10MB</totalSizeCap>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE_PATH}.%d{yyyy-MM-dd}.%i.gz}</fileNamePattern>
|
||||
<maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-7}</maxHistory>
|
||||
<maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${FILE_PATTERN}</pattern>
|
||||
@@ -33,36 +25,33 @@
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 开发环境配置 -->
|
||||
<springProfile name="dev">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</root>
|
||||
<!-- 项目包日志级别 -->
|
||||
<logger name="com.yupi.springbootinit" level="DEBUG" additivity="false">
|
||||
<logger name="com.yupi.springbootinit" level="INFO" additivity="false">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
</logger>
|
||||
<!-- MyBatis日志级别 -->
|
||||
<logger name="com.baomidou.mybatisplus" level="INFO"/>
|
||||
</springProfile>
|
||||
|
||||
<!-- 生产环境配置 -->
|
||||
<springProfile name="prod">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</root>
|
||||
<!-- 项目包日志级别 -->
|
||||
<logger name="com.yupi.springbootinit" level="INFO" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<logger name="com.baomidou.mybatisplus" level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</logger>
|
||||
<!-- 第三方框架日志级别 -->
|
||||
<logger name="org.springframework" level="WARN"/>
|
||||
<logger name="com.baomidou.mybatisplus" level="WARN"/>
|
||||
<logger name="org.redisson" level="WARN"/>
|
||||
<logger name="org.springframework" level="INFO"/>
|
||||
<logger name="org.redisson" level="INFO"/>
|
||||
</springProfile>
|
||||
|
||||
|
||||
<springProfile name="prod">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</root>
|
||||
<logger name="com.yupi.springbootinit" level="INFO" additivity="false">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</logger>
|
||||
<logger name="org.springframework" level="INFO"/>
|
||||
<logger name="com.baomidou.mybatisplus" level="INFO"/>
|
||||
<logger name="org.redisson" level="INFO"/>
|
||||
</springProfile>
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user