文件上传处理

一个表格文件有很多行数据,service 使用

@Override
public void im(List<RiparianExcelValidEntity> riparianEntities, CountDownLatch countDownLatch) {
    try {
        int i =0;

        for (RiparianExcelValidEntity aLong : riparianEntities) {
            LOG.info("开始验证新增数据"+i++);
            executor.execute(new Runnable() {
                @Override
                public void run() {
                    one(aLong);
                }
            });
        }
    }
    catch (Exception e) {
        LOG.error("{}", e);
    }
    finally {
        countDownLatch.countDown();
    }
}
one 方法是验证并且插入数据库的方法, 如何让controller 等待这个方法执行完成后抛出异常
阅读 1.3k
1 个回答

你在循环里面执行线程好像不妥。可考虑批量在1-3个线程里面处理 减少开销。
如果想让controller阻塞 可以考虑用FutureTask来做
future.get方法可以阻塞等待任务处理完。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题