测试线程池
parent
4850a55629
commit
89932f17fe
|
@ -165,12 +165,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, TaskInfo> implement
|
|||
leftJoin += taskInputInfo.getTableName() + " " + taskInputInfo.getTableAsName();
|
||||
}
|
||||
|
||||
String sqlCount = "select count(1) from "+leftJoin;
|
||||
//查询出总条数
|
||||
Integer count = dataValueClient.findCount(Long.valueOf(taskOutputInfo.getBasicId()), sqlCount);
|
||||
log.info("查询到的条数为{}",count);
|
||||
//查询数据
|
||||
sql = sql + leftJoin;
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -182,43 +177,54 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, TaskInfo> implement
|
|||
Long basicId = Long.valueOf(taskOutputInfo.getBasicId());
|
||||
Long tableId = Long.valueOf(taskOutputInfo.getTableId());
|
||||
|
||||
|
||||
if(taskInfo.getWeigh() == 4){
|
||||
log.info("执行紧急任务");
|
||||
String sqlCount = "select count(1) from "+leftJoin;
|
||||
//查询出总条数
|
||||
Integer count = dataValueClient.findCount(Long.valueOf(taskOutputInfo.getBasicId()), sqlCount);
|
||||
log.info("查询到的条数为{}",count);
|
||||
int pageSize = 10000;
|
||||
int totalSegments = (int) Math.ceil((double) count / pageSize);
|
||||
log.info("总共页码为{}", totalSegments);
|
||||
//查询数据
|
||||
sql = sql + leftJoin;
|
||||
for (int i = 0; i < totalSegments; i++) {
|
||||
log.info("当前页为{}", i);
|
||||
int pageNum = i * totalSegments;
|
||||
long finalFirstArray = Math.min(pageSize, count - pageNum);
|
||||
String limit = " limit " + i * pageSize + "," + pageSize;
|
||||
String limitSelect = sql + limit;
|
||||
Long finalDatabaseId = databaseId;
|
||||
String finalSql = sql;
|
||||
log.info("执行查询语句为{}", limitSelect);
|
||||
if(taskInfo.getWeigh() == 4){
|
||||
log.info("执行紧急任务");
|
||||
log.info("sql为{}",finalSql);
|
||||
executeUrgently(() -> {
|
||||
selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap,two);
|
||||
selectAndAdd(finalDatabaseId, basicId, finalSql, tableId,newAndOldMap, finalFirstArray,two);
|
||||
});
|
||||
}
|
||||
|
||||
if(taskInfo.getWeigh() == 3){
|
||||
log.info("执行高级任务");
|
||||
Long finalDatabaseId = databaseId;
|
||||
String finalSql = sql;
|
||||
executeHigh(() -> {
|
||||
selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap,two);
|
||||
selectAndAdd(finalDatabaseId, basicId, finalSql, tableId,newAndOldMap, finalFirstArray,two);
|
||||
});
|
||||
}
|
||||
|
||||
if(taskInfo.getWeigh() == 2){
|
||||
log.info("执行中级任务");
|
||||
Long finalDatabaseId = databaseId;
|
||||
String finalSql = sql;
|
||||
executeMedium(() -> {
|
||||
selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap,two);
|
||||
selectAndAdd(finalDatabaseId, basicId, finalSql, tableId,newAndOldMap, finalFirstArray,two);
|
||||
});
|
||||
}
|
||||
|
||||
if(taskInfo.getWeigh() == 1){
|
||||
log.info("执行低级任务");
|
||||
Long finalDatabaseId = databaseId;
|
||||
String finalSql = sql;
|
||||
executeLow(() -> {
|
||||
selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap,two);
|
||||
selectAndAdd(finalDatabaseId, basicId, finalSql, tableId,newAndOldMap, finalFirstArray,two);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Result<List<List<DataValue>>> tableValue = dataValueFeign.findTableValue(Long.valueOf(taskOutputInfo.getBasicId()), sql);
|
||||
|
||||
|
@ -226,22 +232,9 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, TaskInfo> implement
|
|||
return "success";
|
||||
}
|
||||
|
||||
private void selectAndAdd(Integer count,Long databaseId,Long basicId,String sql,Long tableId,
|
||||
HashMap<String,String> newAndOldMap,Integer two) {
|
||||
int pageSize = 700000;
|
||||
long firstArray = 0L;
|
||||
int totalSegments = (int) Math.ceil((double) count / pageSize);
|
||||
for (int i = 0; i < totalSegments; i++) {
|
||||
log.info("当前页为{}", i);
|
||||
String limit = " limit " + i * pageSize + "," + pageSize;
|
||||
firstArray = Math.min(pageSize, count - i * pageSize);
|
||||
if (firstArray >= pageSize) {
|
||||
firstArray = pageSize;
|
||||
}
|
||||
String limitSelect = sql + limit;
|
||||
log.info("执行查询语句为{}", limitSelect);
|
||||
log.info(databaseId);
|
||||
DataValue[][] tableValue = dataValueClient.findTableValueToArray(databaseId, limitSelect, firstArray,two);
|
||||
private void selectAndAdd(Long databaseId,Long basicId,String sql,Long tableId,
|
||||
HashMap<String,String> newAndOldMap,Long firstArray ,Integer two) {
|
||||
DataValue[][] tableValue = dataValueClient.findTableValueToArray(databaseId, sql, firstArray,two);
|
||||
log.info("远程调用完毕,调用数量{}",tableValue.length);
|
||||
for (DataValue[] dataValues : tableValue) {
|
||||
for (DataValue dataValue : dataValues) {
|
||||
|
@ -253,7 +246,36 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, TaskInfo> implement
|
|||
Result result = dataValueClient.addProduct(basicId, tableId, tableValue);
|
||||
log.info("添加结果为{}", result);
|
||||
log.info("添加到queue里成功");
|
||||
}
|
||||
|
||||
// private void selectAndAdd(Integer count,Long databaseId,Long basicId,String sql,Long tableId,
|
||||
// HashMap<String,String> newAndOldMap,Integer two) {
|
||||
// int pageSize = 700000;
|
||||
// long firstArray = 0L;
|
||||
// int totalSegments = (int) Math.ceil((double) count / pageSize);
|
||||
// log.info("总共页码为{}", totalSegments);
|
||||
// for (int i = 0; i < totalSegments; i++) {
|
||||
// log.info("当前页为{}", i);
|
||||
// String limit = " limit " + i * pageSize + "," + pageSize;
|
||||
// firstArray = Math.min(pageSize, count - i * pageSize);
|
||||
// if (firstArray >= pageSize) {
|
||||
// firstArray = pageSize;
|
||||
// }
|
||||
// String limitSelect = sql + limit;
|
||||
// log.info("执行查询语句为{}", limitSelect);
|
||||
// log.info(databaseId);
|
||||
// DataValue[][] tableValue = dataValueClient.findTableValueToArray(databaseId, limitSelect, firstArray,two);
|
||||
// log.info("远程调用完毕,调用数量{}",tableValue.length);
|
||||
// for (DataValue[] dataValues : tableValue) {
|
||||
// for (DataValue dataValue : dataValues) {
|
||||
// String key = dataValue.getKey();
|
||||
// String newKey = newAndOldMap.get(key);
|
||||
// dataValue.setKey(newKey);
|
||||
// }
|
||||
// }
|
||||
// Result result = dataValueClient.addProduct(basicId, tableId, tableValue);
|
||||
// log.info("添加结果为{}", result);
|
||||
// log.info("添加到queue里成功");
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue