perf: 异步同时采集数据

dev
huangfeng 8 months ago
parent b7b76af5b6
commit 3aeef8dbac

@ -12,7 +12,7 @@ import org.springframework.util.CollectionUtils;
import java.util.List;
@Slf4j
public class IEDService {
public class IEDCollectService {
IcdConfigTypeRepository _configRepository;
IcdConfigTypeAttRepository _attRepository;
IcdConfigTypeInstRepository _instRepository;
@ -22,7 +22,7 @@ public class IEDService {
IcdIed ied;
String xml;
public IEDService(IcdConfigTypeRepository configRepository, IcdConfigTypeAttRepository attRepository,
public IEDCollectService(IcdConfigTypeRepository configRepository, IcdConfigTypeAttRepository attRepository,
IcdConfigTypeInstRepository instRepository, RptparamindexRepository rptparamindexRepository,
DataService dataService, String xml, IcdIed ied) {
_configRepository = configRepository;

@ -0,0 +1,33 @@
package com.xydl.cac.task;
import com.xydl.cac.entity.IcdIed;
import com.xydl.cac.entity.Rptparamindex;
import com.xydl.cac.iec.IEDCollectService;
import com.xydl.cac.repository.*;
import com.xydl.cac.service.DataService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class AsyncTask {
@Resource
IcdConfigTypeRepository configRepository;
@Resource
IcdConfigTypeAttRepository attRepository;
@Resource
IcdConfigTypeInstRepository instRepository;
@Resource
RptparamindexRepository rptparamindexRepository;
@Resource
DataService dataService;
@Async
public void collectIed(String xml, IcdIed ied, List<Rptparamindex> rptList) {
IEDCollectService iedService = new IEDCollectService(configRepository, attRepository, instRepository,
rptparamindexRepository, dataService, xml, ied);
iedService.collectAndSave(rptList);
}
}

@ -1,9 +1,7 @@
package com.xydl.cac.task;
import com.xydl.cac.entity.*;
import com.xydl.cac.iec.IEDService;
import com.xydl.cac.repository.*;
import com.xydl.cac.service.DataService;
import com.xydl.cac.service.ModevTypeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
@ -19,21 +17,15 @@ import java.util.List;
@Slf4j
public class Client61850Task {
@Resource
AsyncTask asyncTask;
@Resource
IcdFileRepository fileRepository;
@Resource
IcdIedRepository iedRepository;
@Resource
IcdConfigTypeRepository configRepository;
@Resource
IcdConfigTypeAttRepository attRepository;
@Resource
IcdConfigTypeInstRepository instRepository;
@Resource
RptparamindexRepository rptparamindexRepository;
@Resource
DataService dataService;
@Resource
ModevTypeService modevTypeService;
@Resource
NSensorRepository sensorRepository;
@ -89,16 +81,9 @@ public class Client61850Task {
List<IcdIed> iedList = iedRepository.findByIcdFileId(icdFile.getId());
if (!CollectionUtils.isEmpty(iedList)) {
for (IcdIed ied : iedList) {
this.collectIed(icdFile.getXml(), ied, rptList);
}
asyncTask.collectIed(icdFile.getXml(), ied, rptList);
}
}
private void collectIed(String xml, IcdIed ied, List<Rptparamindex> rptList) {
IEDService iedService = new IEDService(configRepository, attRepository, instRepository,
rptparamindexRepository, dataService, xml, ied);
iedService.collectAndSave(rptList);
}
}

Loading…
Cancel
Save