线程池的使用
public class ThreadUtil {
private static final ExecutorService executor = new ThreadPoolExecutor(
3,
10,
0L,
TimeUnit.SECONDS,
new LinkedBlockingQueue<>());
public static void execute(Runnable runnable) throws Exception {
executor.execute(runnable);
}
}
try {
ThreadUtil.execute(new Runnable() {
@Override
public void run() {
RtnInfo rtnInfo = aliMiniAppController.auditApply(aliMiniAppAuditDto);
if(rtnInfo.getCode() != 0 && batchRtnInfo == null){
batchRtnInfo = RtnInfo.error(1001, "批量提交审核异常");
}
}
});
}catch (Exception e){
}
事务管理器
package com.wt.console.base.config;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.TransactionManagementConfigurer;
import javax.annotation.Resource;
import javax.sql.DataSource;
@Configuration
public class MultiTransactionManager implements TransactionManagementConfigurer {
@Resource(name="txManager")
private PlatformTransactionManager txManager;
@Bean(name = "txManager")
public DataSourceTransactionManager getDataSourceTransactionManager(
@Qualifier("datasource") DataSource datasource) {
DataSourceTransactionManager dstm = new DataSourceTransactionManager();
dstm.setDataSource(datasource);
return dstm;
}
@Bean(name = "user_center_txManager")
public PlatformTransactionManager getUserCenterDataSourceTransactionManager(
@Qualifier("user_center_datasource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "business_txManager")
public PlatformTransactionManager getBusinessDataSourceTransactionManager(
@Qualifier("business_datasource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return txManager;
}
}
@Transactional(rollbackFor = Exception.class, value="user_center_txManager")
public void importExcelData(MultipartFile file, UserFansDto userFansDto) throws Exception{
List<ArrayList<String>> rowList = ExcelRead.readExcel(file);
List<String> row = null;
List<UserFans> userFansList = new ArrayList<>();
UserFans userFans = null;
for(int i=0;i<rowList.size();i++){
row = rowList.get(i);
if(StringUtil.isEmpty(row.get(0))){
continue;
}
Date statisTime = DateUtil.parse(row.get(0),"yyyy/MM/dd");
userFansDto.setStatisTime(statisTime);
userFans = userFansService.selectSingleUserFans(userFansDto);
if(userFans==null){
userFans = UserFans.builder()
.statisTime(statisTime)
.channel(userFansDto.getChannel())
.appId(userFansDto.getAppId())
.newFans(Integer.parseInt(row.get(1)))
.cancelFans(Integer.parseInt(row.get(2)))
.totalFans(Integer.parseInt(row.get(4)))
.createTime(new Date()).build();
userFansList.add(userFans);
}
}
if(CollectionKit.isNotEmpty(userFansList)){
userFansService.insertBatchUserFans(userFansList);
}
}