codeView收获

线程池的使用

public class ThreadUtil {

    /**
     * 对线程池的最大线程个数做限制
     * @author zhangjinxiang
     * @date 2019-6-24
     */
    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;
    }
    // 创建事务管理器1
    @Bean(name = "user_center_txManager")
    public PlatformTransactionManager getUserCenterDataSourceTransactionManager(
            @Qualifier("user_center_datasource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    // 创建事务管理器2
    @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);
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值