09081022:给任务模块提供查询和添加的接口
parent
ae6729c434
commit
38cb2d157a
|
@ -351,21 +351,30 @@ public class DataValueServiceImpl extends ServiceImpl<DataValueMapper, DataValue
|
|||
MysqlQuery mysqlQuery = new MysqlQuery();
|
||||
mysqlQuery.setDataSourceId(dataValueModel.getBasicId());
|
||||
DataSource dataSource = dataSourceService.getById(dataValueModel.getBasicId());
|
||||
|
||||
MysqlPool mysqlPool = new MysqlPool(dataSource);
|
||||
mysqlPool.init();
|
||||
// 创建线程池
|
||||
ExecutorService executorService1 = Executors.newFixedThreadPool(8);
|
||||
// 用于记录批量插入的数量
|
||||
AtomicInteger atomicInteger = new AtomicInteger();
|
||||
// 将数据拆分成小批量
|
||||
List<DataValue[][]> batches =splitData(dataValueModel.getDataValues(),2000);
|
||||
// 获取连接
|
||||
Connection conn = mysqlPool.getConn();
|
||||
|
||||
try {
|
||||
// 关闭自动提交,改为手动提交
|
||||
conn.setAutoCommit(false);
|
||||
// 提交数据
|
||||
for (DataValue[][] batch : batches) {
|
||||
// 异步提交数据
|
||||
executorService1.submit(()->{
|
||||
try {
|
||||
// 创建语句
|
||||
Statement statement = conn.createStatement();
|
||||
statement.executeQuery(dataValueModel.getSql());
|
||||
// 执行语句
|
||||
statement.executeUpdate(dataValueModel.getSql());
|
||||
|
||||
atomicInteger.addAndGet(batch.length);
|
||||
} catch (SQLException e) {
|
||||
try {
|
||||
|
@ -378,9 +387,11 @@ public class DataValueServiceImpl extends ServiceImpl<DataValueMapper, DataValue
|
|||
}
|
||||
});
|
||||
}
|
||||
// 等待所有任务完成
|
||||
executorService1.shutdown();
|
||||
// 等待所有任务完成
|
||||
executorService1.awaitTermination(1, TimeUnit.MINUTES);
|
||||
|
||||
// 提交事务
|
||||
conn.commit();
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
|
@ -388,10 +399,13 @@ public class DataValueServiceImpl extends ServiceImpl<DataValueMapper, DataValue
|
|||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
} finally {
|
||||
// 关闭连接
|
||||
mysqlPool.closeConn();
|
||||
// 关闭连接池
|
||||
mysqlPool.closeBaseConn();
|
||||
// 关闭线程池
|
||||
executorService1.shutdownNow();
|
||||
}
|
||||
|
||||
return atomicInteger.get();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue