解决线程无限执行问题

This commit is contained in:
梁琦涛
2024-03-21 09:27:05 +08:00
parent e5ed9b6e25
commit 14c92bda19
2 changed files with 79 additions and 86 deletions
@@ -103,7 +103,9 @@ public class HomeSearchCheckEsPlanJob implements Job {
} }
private void checkLawsEnterpriseStandard(String resourceType, Map<String, Integer> mapHash) { private void checkLawsEnterpriseStandard(String resourceType, Map<String, Integer> mapHash) {
List<LawsEnterpriseStandard> listLawsEnterpriseStandard = lawsEnterpriseStandardService.list(); LambdaQueryWrapper<LawsEnterpriseStandard> query = new LambdaQueryWrapper<>();
query.ne(LawsEnterpriseStandard::getStandardState,"9");
List<LawsEnterpriseStandard> listLawsEnterpriseStandard = lawsEnterpriseStandardService.list(query);
int count3 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD, 0); int count3 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD, 0);
int m3 = 0; int m3 = 0;
if(!CollectionUtils.isEmpty(listLawsEnterpriseStandard)){ if(!CollectionUtils.isEmpty(listLawsEnterpriseStandard)){
@@ -119,7 +121,9 @@ public class HomeSearchCheckEsPlanJob implements Job {
} }
private void checkLawsOverseasStandard(String resourceType, Map<String, Integer> mapHash) { private void checkLawsOverseasStandard(String resourceType, Map<String, Integer> mapHash) {
List<LawsOverseasStandard> listLawsOverseasStandard = lawsOverseasStandardService.list(); LambdaQueryWrapper<LawsOverseasStandard> query = new LambdaQueryWrapper<>();
query.ne(LawsOverseasStandard::getStandardState,"7");
List<LawsOverseasStandard> listLawsOverseasStandard = lawsOverseasStandardService.list(query);
int count2 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD, 0); int count2 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD, 0);
int m2 = 0; int m2 = 0;
if(!CollectionUtils.isEmpty(listLawsOverseasStandard)){ if(!CollectionUtils.isEmpty(listLawsOverseasStandard)){
@@ -135,7 +139,9 @@ public class HomeSearchCheckEsPlanJob implements Job {
} }
private void checkLawsDomesticStandard(String resourceType, Map<String, Integer> mapHash) { private void checkLawsDomesticStandard(String resourceType, Map<String, Integer> mapHash) {
List<LawsDomesticStandard> listLawsDomesticStandard = lawsDomesticStandardService.list(); LambdaQueryWrapper<LawsDomesticStandard> query = new LambdaQueryWrapper<>();
query.ne(LawsDomesticStandard::getStandardState,"7");
List<LawsDomesticStandard> listLawsDomesticStandard = lawsDomesticStandardService.list(query);
// 比对数据 // 比对数据
int count1 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD, 0); int count1 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD, 0);
int m1 = 0; int m1 = 0;
@@ -1094,7 +1094,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
int startIndex = 0; int startIndex = 0;
int batchCount = 500; int batchCount = 500;
List<String> listIds = Arrays.asList(ids.split(",")); List<String> listIds = Arrays.asList(ids.split(","));
ForkJoinPool pool = new ForkJoinPool();
if(CollectionUtils.isEmpty(listIds)) { if(CollectionUtils.isEmpty(listIds)) {
return true; return true;
} }
@@ -1109,11 +1108,9 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
if(CollectionUtils.isEmpty(listLawsDomesticStandard)){ if(CollectionUtils.isEmpty(listLawsDomesticStandard)){
continue; continue;
} }
CompletableFuture.runAsync(()->{ for (LawsDomesticStandard lawsDomesticStandard : listLawsDomesticStandard) {
for (LawsDomesticStandard lawsDomesticStandard : listLawsDomesticStandard) { createData(resourceType, opType, lawsDomesticStandard);
createData(resourceType, opType, lawsDomesticStandard); }
}
},pool);
// 下一批 // 下一批
startIndex = startIndex + batchCount; startIndex = startIndex + batchCount;
} }
@@ -1216,8 +1213,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
int startIndex = 0; int startIndex = 0;
int batchCount = 2000; int batchCount = 2000;
List<String> listIds = Arrays.asList(ids.split(",")); List<String> listIds = Arrays.asList(ids.split(","));
ForkJoinPool pool = new ForkJoinPool();
// 异步执行
while (startIndex < listIds.size()) { while (startIndex < listIds.size()) {
int endIndex = getEndIndex(startIndex, batchCount, listIds); int endIndex = getEndIndex(startIndex, batchCount, listIds);
List<String> listIdsSub = listIds.subList(startIndex, endIndex); List<String> listIdsSub = listIds.subList(startIndex, endIndex);
@@ -1228,35 +1223,33 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
if(CollectionUtils.isEmpty(listLawsOverseasStandard)){ if(CollectionUtils.isEmpty(listLawsOverseasStandard)){
continue; continue;
} }
CompletableFuture.runAsync(()->{ for (LawsOverseasStandard lawsOverseasStandard : listLawsOverseasStandard) {
for (LawsOverseasStandard lawsOverseasStandard : listLawsOverseasStandard) { try {
try { LawsHomeNormalSearchVO obj = new LawsHomeNormalSearchVO();
LawsHomeNormalSearchVO obj = new LawsHomeNormalSearchVO(); obj.setId(lawsOverseasStandard.getId());
obj.setId(lawsOverseasStandard.getId()); obj.setTitle(lawsOverseasStandard.getStandardNumber() + " " + lawsOverseasStandard.getStandardName());
obj.setTitle(lawsOverseasStandard.getStandardNumber() + " " + lawsOverseasStandard.getStandardName()); obj.setResourceType(resourceType);
obj.setResourceType(resourceType); obj.setStandardTypeOrder("7");
obj.setStandardTypeOrder("7"); switch (lawsOverseasStandard.getStandardState()){
switch (lawsOverseasStandard.getStandardState()){ case "5": obj.setStandardStateOrder("2");break;
case "5": obj.setStandardStateOrder("2");break; case "6": obj.setStandardStateOrder("1");break;
case "6": obj.setStandardStateOrder("1");break; case "7": obj.setStandardStateOrder("3");break;
case "7": obj.setStandardStateOrder("3");break; default: obj.setStandardStateOrder("4");break;
default: obj.setStandardStateOrder("4");break;
}
obj.setImplementationDate(lawsOverseasStandard.getImplementationDate());
obj.setCreateTime(lawsOverseasStandard.getCreateTime());
obj.setReleaseDate(lawsOverseasStandard.getReleaseDate());
obj.setStandardClass(lawsOverseasStandard.getStandardClass());
obj.setApplicableVehicle(lawsOverseasStandard.getApplicableVehicle());
obj.setStandardState(lawsOverseasStandard.getStandardState());
obj.setPushRangeFlag(2);
obj.setReleaseStatus("1");
List<OSSFile> listFile = getOssFilesLawsOverseasStandard(lawsOverseasStandard);
updateES(opType, obj, listFile, lawsOverseasStandard.getId());
}catch (Exception e){
log.error(SYNC_ES_ERR,e.getMessage());
} }
obj.setImplementationDate(lawsOverseasStandard.getImplementationDate());
obj.setCreateTime(lawsOverseasStandard.getCreateTime());
obj.setReleaseDate(lawsOverseasStandard.getReleaseDate());
obj.setStandardClass(lawsOverseasStandard.getStandardClass());
obj.setApplicableVehicle(lawsOverseasStandard.getApplicableVehicle());
obj.setStandardState(lawsOverseasStandard.getStandardState());
obj.setPushRangeFlag(2);
obj.setReleaseStatus("1");
List<OSSFile> listFile = getOssFilesLawsOverseasStandard(lawsOverseasStandard);
updateES(opType, obj, listFile, lawsOverseasStandard.getId());
}catch (Exception e){
log.error(SYNC_ES_ERR,e.getMessage());
} }
},pool); }
startIndex = startIndex + batchCount; // 下一批 startIndex = startIndex + batchCount; // 下一批
} }
} }
@@ -1307,8 +1300,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
int startIndex = 0; int startIndex = 0;
int batchCount = 2000; int batchCount = 2000;
List<String> listIds = Arrays.asList(ids.split(",")); List<String> listIds = Arrays.asList(ids.split(","));
ForkJoinPool pool = new ForkJoinPool();
// 异步执行
while (startIndex < listIds.size()) { while (startIndex < listIds.size()) {
int endIndex = getEndIndex(startIndex, batchCount, listIds); int endIndex = getEndIndex(startIndex, batchCount, listIds);
List<String> listIdsSub = listIds.subList(startIndex, endIndex); List<String> listIdsSub = listIds.subList(startIndex, endIndex);
@@ -1319,37 +1310,35 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
if(CollectionUtils.isEmpty(listLawsEnterpriseStandard)){ if(CollectionUtils.isEmpty(listLawsEnterpriseStandard)){
continue; continue;
} }
CompletableFuture.runAsync(()->{ for (LawsEnterpriseStandard lawsEnterpriseStandard : listLawsEnterpriseStandard) {
for (LawsEnterpriseStandard lawsEnterpriseStandard : listLawsEnterpriseStandard) { try {
try { LawsHomeNormalSearchVO obj = new LawsHomeNormalSearchVO();
LawsHomeNormalSearchVO obj = new LawsHomeNormalSearchVO(); obj.setId(lawsEnterpriseStandard.getId());
obj.setId(lawsEnterpriseStandard.getId()); obj.setTitle(lawsEnterpriseStandard.getStandardNumber() + " " + lawsEnterpriseStandard.getStandardName());
obj.setTitle(lawsEnterpriseStandard.getStandardNumber() + " " + lawsEnterpriseStandard.getStandardName()); obj.setResourceType(resourceType);
obj.setResourceType(resourceType); obj.setStandardTypeOrder("6");
obj.setStandardTypeOrder("6");
switch (lawsEnterpriseStandard.getStandardState()){ switch (lawsEnterpriseStandard.getStandardState()){
case "5": obj.setStandardStateOrder("2");break; case "5": obj.setStandardStateOrder("2");break;
case "6": obj.setStandardStateOrder("1");break; case "6": obj.setStandardStateOrder("1");break;
case "7": obj.setStandardStateOrder("3");break; case "7": obj.setStandardStateOrder("3");break;
default: obj.setStandardStateOrder("4");break; default: obj.setStandardStateOrder("4");break;
}
obj.setImplementationDate(lawsEnterpriseStandard.getImplementationDate());
obj.setCreateTime(lawsEnterpriseStandard.getCreateTime());
obj.setReleaseDate(lawsEnterpriseStandard.getReleaseDate());
obj.setStandardState(lawsEnterpriseStandard.getStandardState());
obj.setStandardCode(lawsEnterpriseStandard.getStandardCode());
obj.setEnterpriseStandardState(lawsEnterpriseStandard.getStandardState());
obj.setGradeClassification(lawsEnterpriseStandard.getGradeClassification());
obj.setPushRangeFlag(2);
obj.setReleaseStatus("1");
List<OSSFile> listFile = getOssFilesLawsEnterpriseStandard(lawsEnterpriseStandard);
updateES(opType, obj, listFile, lawsEnterpriseStandard.getId());
}catch (Exception e){
log.error(SYNC_ES_ERR,e.getMessage());
} }
obj.setImplementationDate(lawsEnterpriseStandard.getImplementationDate());
obj.setCreateTime(lawsEnterpriseStandard.getCreateTime());
obj.setReleaseDate(lawsEnterpriseStandard.getReleaseDate());
obj.setStandardState(lawsEnterpriseStandard.getStandardState());
obj.setStandardCode(lawsEnterpriseStandard.getStandardCode());
obj.setEnterpriseStandardState(lawsEnterpriseStandard.getStandardState());
obj.setGradeClassification(lawsEnterpriseStandard.getGradeClassification());
obj.setPushRangeFlag(2);
obj.setReleaseStatus("1");
List<OSSFile> listFile = getOssFilesLawsEnterpriseStandard(lawsEnterpriseStandard);
updateES(opType, obj, listFile, lawsEnterpriseStandard.getId());
}catch (Exception e){
log.error(SYNC_ES_ERR,e.getMessage());
} }
},pool); }
startIndex = startIndex + batchCount; // 下一批 startIndex = startIndex + batchCount; // 下一批
} }
} }
@@ -1395,25 +1384,23 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
if(CollectionUtils.isEmpty(listLawsNewsFeed)){ if(CollectionUtils.isEmpty(listLawsNewsFeed)){
continue; continue;
} }
CompletableFuture.runAsync(()->{ for (LawsNewsFeed lawsNewsFeed : listLawsNewsFeed) {
for (LawsNewsFeed lawsNewsFeed : listLawsNewsFeed) { try {
try { LawsHomeNormalSearchVO obj = new LawsHomeNormalSearchVO();
LawsHomeNormalSearchVO obj = new LawsHomeNormalSearchVO(); obj.setId(lawsNewsFeed.getId());
obj.setId(lawsNewsFeed.getId()); obj.setTitle(lawsNewsFeed.getDynamicHeading());
obj.setTitle(lawsNewsFeed.getDynamicHeading()); obj.setResourceType(resourceType);
obj.setResourceType(resourceType); obj.setStandardTypeOrder("9");
obj.setStandardTypeOrder("9"); obj.setStandardState("4");
obj.setStandardState("4"); obj.setReleaseDate(lawsNewsFeed.getReleaseTime());
obj.setReleaseDate(lawsNewsFeed.getReleaseTime()); obj.setCreateTime(lawsNewsFeed.getCreateTime());
obj.setCreateTime(lawsNewsFeed.getCreateTime()); obj.setPushRangeFlag(lawsNewsFeed.getPushRangeFlag());
obj.setPushRangeFlag(lawsNewsFeed.getPushRangeFlag()); obj.setReleaseStatus(String.valueOf(lawsNewsFeed.getReleaseStatus()));
obj.setReleaseStatus(String.valueOf(lawsNewsFeed.getReleaseStatus())); updateESLawsNewsFeed(opType, lawsNewsFeed, obj);
updateESLawsNewsFeed(opType, lawsNewsFeed, obj); }catch (Exception e){
}catch (Exception e){ log.error(SYNC_ES_ERR,e.getMessage());
log.error(SYNC_ES_ERR,e.getMessage());
}
} }
},pool); }
startIndex = startIndex + batchCount; // 下一批 startIndex = startIndex + batchCount; // 下一批
} }
} }