调整influxdb插入条数20000,增加线程池

This commit is contained in:
wr
2025-04-28 10:59:10 +08:00
parent e875c872f0
commit e130ccb2e0
19 changed files with 73 additions and 17 deletions

View File

@@ -53,7 +53,7 @@ public class InsertDataFlickerImpl implements InsertIDataFlicker {
@Override @Override
public void insertDataFlicker(List<DataFlicker> list) { public void insertDataFlicker(List<DataFlicker> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataFlicker>> partition = ListUtils.partition(list, 100000); List<List<DataFlicker>> partition = ListUtils.partition(list, 20000);
for (List<DataFlicker> dataFlickerList : partition) { for (List<DataFlicker> dataFlickerList : partition) {
for (DataFlicker data : dataFlickerList) { for (DataFlicker data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -52,7 +52,7 @@ public class InsertDataFlucImpl implements InsertIDataFluc {
@Override @Override
public void insertDataFluc(List<DataFluc> list) { public void insertDataFluc(List<DataFluc> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataFluc>> partition = ListUtils.partition(list, 100000); List<List<DataFluc>> partition = ListUtils.partition(list, 20000);
for (List<DataFluc> dataFlickerList : partition) { for (List<DataFluc> dataFlickerList : partition) {
for (DataFluc data : dataFlickerList) { for (DataFluc data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -49,7 +49,7 @@ public class InsertDataHarmRateIImpl implements InsertIDataHarmRateI {
@Override @Override
public void insertDataHarmrateI(List<DataHarmrateI> list) { public void insertDataHarmrateI(List<DataHarmrateI> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataHarmrateI>> partition = ListUtils.partition(list, 100000); List<List<DataHarmrateI>> partition = ListUtils.partition(list, 20000);
for (List<DataHarmrateI> dataFlickerList : partition) { for (List<DataHarmrateI> dataFlickerList : partition) {
for (DataHarmrateI data : dataFlickerList) { for (DataHarmrateI data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -52,7 +52,7 @@ public class InsertDataHarmRateVImpl implements InsertIDataHarmRateV {
@Override @Override
public void insertDataHarmrateV(List<DataHarmrateV> list) { public void insertDataHarmrateV(List<DataHarmrateV> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataHarmrateV>> partition = ListUtils.partition(list, 100000); List<List<DataHarmrateV>> partition = ListUtils.partition(list, 20000);
for (List<DataHarmrateV> dataFlickerList : partition) { for (List<DataHarmrateV> dataFlickerList : partition) {
for (DataHarmrateV data : dataFlickerList) { for (DataHarmrateV data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -55,7 +55,7 @@ public class InsertDataHarmphasicIImpl implements InsertIDataHarmphasicI {
@Override @Override
public void insertDataHarmphasicI(List<DataHarmphasicI> list) { public void insertDataHarmphasicI(List<DataHarmphasicI> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataHarmphasicI>> partition = ListUtils.partition(list, 100000); List<List<DataHarmphasicI>> partition = ListUtils.partition(list, 20000);
for (List<DataHarmphasicI> dataFlickerList : partition) { for (List<DataHarmphasicI> dataFlickerList : partition) {
for (DataHarmphasicI data : dataFlickerList) { for (DataHarmphasicI data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -54,7 +54,7 @@ public class InsertDataHarmphasicVImpl implements InsertIDataHarmphasicV {
@Override @Override
public void insertDataHarmphasicV(List<DataHarmphasicV> list) { public void insertDataHarmphasicV(List<DataHarmphasicV> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataHarmphasicV>> partition = ListUtils.partition(list, 100000); List<List<DataHarmphasicV>> partition = ListUtils.partition(list, 20000);
for (List<DataHarmphasicV> dataFlickerList : partition) { for (List<DataHarmphasicV> dataFlickerList : partition) {
for (DataHarmphasicV data : dataFlickerList) { for (DataHarmphasicV data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -57,7 +57,7 @@ public class InsertDataHarmpowerPImpl implements InsertIDataHarmpowerP {
@Override @Override
public void insertDataHarmpowerP(List<DataHarmpowerP> list) { public void insertDataHarmpowerP(List<DataHarmpowerP> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataHarmpowerP>> partition = ListUtils.partition(list, 100000); List<List<DataHarmpowerP>> partition = ListUtils.partition(list, 20000);
for (List<DataHarmpowerP> dataFlickerList : partition) { for (List<DataHarmpowerP> dataFlickerList : partition) {
for (DataHarmpowerP data : dataFlickerList) { for (DataHarmpowerP data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -54,7 +54,7 @@ public class InsertDataHarmpowerQImpl implements InsertIDataHarmpowerQ {
@Override @Override
public void insertDataHarmpowerQ(List<DataHarmpowerQ> list) { public void insertDataHarmpowerQ(List<DataHarmpowerQ> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataHarmpowerQ>> partition = ListUtils.partition(list, 100000); List<List<DataHarmpowerQ>> partition = ListUtils.partition(list, 20000);
for (List<DataHarmpowerQ> dataFlickerList : partition) { for (List<DataHarmpowerQ> dataFlickerList : partition) {
for (DataHarmpowerQ data : dataFlickerList) { for (DataHarmpowerQ data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -54,7 +54,7 @@ public class InsertDataHarmpowerSImpl implements InsertIDataHarmpowerS {
@Override @Override
public void insertDataHarmpowerS(List<DataHarmpowerS> list) { public void insertDataHarmpowerS(List<DataHarmpowerS> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataHarmpowerS>> partition = ListUtils.partition(list, 100000); List<List<DataHarmpowerS>> partition = ListUtils.partition(list, 20000);
for (List<DataHarmpowerS> dataFlickerList : partition) { for (List<DataHarmpowerS> dataFlickerList : partition) {
for (DataHarmpowerS data : dataFlickerList) { for (DataHarmpowerS data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -63,7 +63,7 @@ public class InsertDataIImpl implements InsertIDataI {
@Override @Override
public void insertDataI(List<DataI> list) { public void insertDataI(List<DataI> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataI>> partition = ListUtils.partition(list, 100000); List<List<DataI>> partition = ListUtils.partition(list, 20000);
for (List<DataI> dataFlickerList : partition) { for (List<DataI> dataFlickerList : partition) {
for (DataI data : dataFlickerList) { for (DataI data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -53,7 +53,7 @@ public class InsertDataInharmIImpl implements InsertIDataInharmI {
@Override @Override
public void insertDataInharmI(List<DataInharmI> list) { public void insertDataInharmI(List<DataInharmI> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataInharmI>> partition = ListUtils.partition(list, 100000); List<List<DataInharmI>> partition = ListUtils.partition(list, 20000);
for (List<DataInharmI> dataFlickerList : partition) { for (List<DataInharmI> dataFlickerList : partition) {
for (DataInharmI data : dataFlickerList) { for (DataInharmI data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -56,7 +56,7 @@ public class InsertDataInharmVImpl implements InsertIDataInharmV {
@Override @Override
public void insertDataInharmV(List<DataInharmV> list) { public void insertDataInharmV(List<DataInharmV> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataInharmV>> partition = ListUtils.partition(list, 100000); List<List<DataInharmV>> partition = ListUtils.partition(list, 20000);
for (List<DataInharmV> dataFlickerList : partition) { for (List<DataInharmV> dataFlickerList : partition) {
for (DataInharmV data : dataFlickerList) { for (DataInharmV data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -50,7 +50,7 @@ public class InsertDataPltImpl implements InsertIDataPlt {
@Override @Override
public void insertDataPlt(List<DataPlt> list) { public void insertDataPlt(List<DataPlt> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataPlt>> partition = ListUtils.partition(list, 100000); List<List<DataPlt>> partition = ListUtils.partition(list, 20000);
for (List<DataPlt> dataFlickerList : partition) { for (List<DataPlt> dataFlickerList : partition) {
for (DataPlt data : dataFlickerList) { for (DataPlt data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -98,7 +98,7 @@ public class InsertDataVImpl implements InsertIDataV {
@Override @Override
public void insertDataV(List<DataV> list) { public void insertDataV(List<DataV> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<DataV>> partition = ListUtils.partition(list, 100000); List<List<DataV>> partition = ListUtils.partition(list, 20000);
for (List<DataV> dataFlickerList : partition) { for (List<DataV> dataFlickerList : partition) {
for (DataV dataV : dataFlickerList) { for (DataV dataV : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(dataV.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(dataV.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -48,7 +48,7 @@ public class InsertPqsCommunicateImpl implements InsertIPqsCommunicate {
@Override @Override
public void insertPqsCommunicate(List<PqsCommunicate> list) { public void insertPqsCommunicate(List<PqsCommunicate> list) {
if(CollUtil.isNotEmpty(list)){ if(CollUtil.isNotEmpty(list)){
List<List<PqsCommunicate>> partition = ListUtils.partition(list, 100000); List<List<PqsCommunicate>> partition = ListUtils.partition(list, 20000);
for (List<PqsCommunicate> dataFlickerList : partition) { for (List<PqsCommunicate> dataFlickerList : partition) {
for (PqsCommunicate data : dataFlickerList) { for (PqsCommunicate data : dataFlickerList) {
Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant(); Instant instant = LocalDateTimeUtil.parse(data.getTimeId(), DatePattern.NORM_DATETIME_PATTERN) .atZone(ZoneId.systemDefault()).toInstant();

View File

@@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.DependsOn; import org.springframework.context.annotation.DependsOn;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
/** /**
@@ -18,6 +19,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@MapperScan("com.njcn.**.mapper") @MapperScan("com.njcn.**.mapper")
@EnableFeignClients(basePackages = "com.njcn") @EnableFeignClients(basePackages = "com.njcn")
@SpringBootApplication(scanBasePackages = "com.njcn") @SpringBootApplication(scanBasePackages = "com.njcn")
@EnableScheduling
public class MigrationReadBootApplication { public class MigrationReadBootApplication {
public static void main(String[] args) { public static void main(String[] args) {

View File

@@ -0,0 +1,48 @@
package com.njcn.migration.read.config;
import com.njcn.common.config.GeneralInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
/**
* @author hongawen
* @version 1.0.0
* @date 2022年03月11日 09:32
*/
@Data
@Order(100)
@Configuration
@EnableAsync
@AllArgsConstructor
public class AsyncInfluxDBConfiguration {
private final GeneralInfo generalInfo;
@Bean("asyncInfluxDBExecutor")
public Executor asyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 核心线程数:线程池创建时候初始化的线程数
executor.setCorePoolSize(generalInfo.getCorePoolSize());
// 最大线程数:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心线程数的线程
executor.setMaxPoolSize(generalInfo.getMaxPoolSize());
// 缓冲队列:用来缓冲执行任务的队列
executor.setQueueCapacity(generalInfo.getQueueCapacity());
// 允许线程的空闲时间60秒当超过了核心线程之外的线程在空闲时间到达之后会被销毁
executor.setKeepAliveSeconds(generalInfo.getKeepAliveSeconds());
// 线程池名的前缀:设置好了之后可以方便我们定位处理任务所在的线程池
executor.setThreadNamePrefix(generalInfo.getMicroServiceName());
// 缓冲队列满了之后的拒绝策略:由调用线程处理(一般是主线程)
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.initialize();
return executor;
}
}

View File

@@ -52,7 +52,7 @@ public class MigrationServiceImpl implements MigrationService {
@Override @Override
@Async @Async("asyncInfluxDBExecutor")
public void hourseLineDataBacthSysc(LineCountEvaluateParam param) { public void hourseLineDataBacthSysc(LineCountEvaluateParam param) {
Map<String, String> map = TimeUtil.getLineMap(); Map<String, String> map = TimeUtil.getLineMap();
int size = map.size(); int size = map.size();
@@ -97,7 +97,7 @@ public class MigrationServiceImpl implements MigrationService {
} }
@Override @Override
@Async @Async("asyncInfluxDBExecutor")
public void hourseDevDataBacthSysc(LineCountEvaluateParam param) { public void hourseDevDataBacthSysc(LineCountEvaluateParam param) {
Map<String, String> map = TimeUtil.getDevMap(); Map<String, String> map = TimeUtil.getDevMap();
int size = map.size(); int size = map.size();
@@ -127,6 +127,7 @@ public class MigrationServiceImpl implements MigrationService {
} }
@Override @Override
@Async("asyncInfluxDBExecutor")
public void initializeExcel() throws IOException { public void initializeExcel() throws IOException {
File file = new File("/usr/local/jar/sj.xlsx"); File file = new File("/usr/local/jar/sj.xlsx");
Map<String, String> map = TimeUtil.getLineMap(); Map<String, String> map = TimeUtil.getLineMap();

View File

@@ -58,6 +58,11 @@ mybatis-plus:
#配置sql日志输出 #配置sql日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
threadPool:
corePoolSize: 12
maxPoolSize: 24
queueCapacity: 500
keepAliveSeconds: 60
# type-aliases-package: com.njcn.harmonic.pojo # type-aliases-package: com.njcn.harmonic.pojo
# type-handlers-package: com.njcn.db.handler # type-handlers-package: com.njcn.db.handler