当前位置: 首页 > news >正文

公司网站开发费账务处理正规的网站建设公

公司网站开发费账务处理,正规的网站建设公,新站网站推广该如何做,博客平台wordpress一、问题复现 批量插入时,使用多线程对插入数据实现分批插入,在service层使用Transactional注解,对应方法中线程池中开辟的子线程抛出异常时,没有回滚事务。 二、原因分析 事务管理范围不正确:Transactional注解仅对…

一、问题复现

批量插入时,使用多线程对插入数据实现分批插入,在service层使用@Transactional注解,对应方法中线程池中开辟的子线程抛出异常时,没有回滚事务。

二、原因分析

事务管理范围不正确:@Transactional注解仅对当前方法有效,如果在方法内创建新的线程或使用线程池等异步操作,该方法之外的代码将无法受到事务的管理。因此,在使用多线程进行批量操作时,需要确保整个批量操作处于同一事务管理范围内。

Spring事务和Java线程池机制的互动问题:在使用ThreadPoolExecutor进行批量操作时,线程池中的线程和Spring管理的事务并不是同一个线程,这可能会导致事务管理器感知不到线程中的异常,从而导致事务未能回滚。

三、解决办法

弃用注解样事务,改为手动管理事务。

复制代码

  SqlSession sqlSession = SpringContextUtils.getBean(SqlSessionTemplate.class).getSqlSessionFactory() .openSession();Connection connection = sqlSession.getConnection();OfflineExpressRecordExtMapper extMapper = sqlSession.getMapper(OfflineExpressRecordExtMapper.class);// 批量插入int taskCount = (int) Math.ceil((double) beanList.size() / THREAD_HANDLE);ThreadPoolExecutor executor = SpringContextUtils      .getBean("offlineExpressRecordThreadPoolExecutor", ThreadPoolExecutor.class);
try {
connection.setAutoCommit(false);
ArrayList<Future<?>> futures = new ArrayList<>();
for (int i = 0; i < taskCount; i++) {
int start = i * THREAD_HANDLE;
int end = (i + 1) * THREAD_HANDLE > beanList.size() ? beanList.size() : (i + 1) * THREAD_HANDLE;
List<OfflineExpressRecord> threadHandleList = beanList.subList(start, end);
Future<?> task = executor.submit(() -> extMapper.saveBatch(threadHandleList));
futures.add(task);
}// 等待插入完成,检验异常
for (Future<?> future : futures) {
future.get();
}connection.commit();} catch (Exception e) {log.error("批量导入存储数据过程中出现异常", e);connection.rollback();throw e;
} finally {connection.close();}
http://www.yayakq.cn/news/856714/

相关文章:

  • 农业网站素材广东省住房建设部网站
  • 专门做钱币的网站网站开发中怎么样对接接口
  • 网络公司网站源码推动高质量发展的意义
  • 做网站5年工资多少室内设计师个人网站
  • 做兼职的网站有哪些工作内容余姚企业网站建设
  • 网站建设设计贵吗设计师联盟网站
  • 网络seo哈尔滨网站seo站长工具
  • h5 php mysql网站开发国内最好的网站服务器
  • 网站建设流程图解wordpress html5 音乐
  • 建德网站建设做网站需要什么手续资料
  • 网站建设制作费用预算表做网站本溪
  • 电子商务网站建设背景像网站的ppt怎么做的
  • 微信小程序做链接网站绵阳网站网站建设
  • 有趣的网站网址之家有没有帮忙做网站的
  • 网站建设公司-信科网络查看wordpress访问记录
  • 武进网站建设哪家好设计公司logo用什么软件
  • 能免费创建网站吗柬埔寨做网站
  • 网站版权信息模板微信开发者工具怎么用
  • 如何做基金公司网站photoshop怎么做网站
  • 网站空间站网页制作教程教程
  • 一个网站的建设需要什么手续费百度指数分析
  • 元芳重庆网站建设上合建设网站企业
  • 蚌埠做网站建设费用app模板制作软件免费下载
  • 网站备案号取消原因上海协策网站
  • 网站建设方案编写人盘锦市建设银行网站
  • 优秀的设计网站有哪些网络营销是什么工作主要干啥
  • 网站设计方案书ppthtml5手机网站源码
  • 哪有那样的网站出售友情链接是什么意思
  • 网站内页收录东莞找工作在什么平台找合适
  • 旅游网站作用公司小网站怎么做