如何解决通过多个线程进行Spring事务
我想知道是否有可能在多个线程上进行事务处理。 问题是,我需要保留大量记录。如果我按顺序进行,将需要很长时间。这就是为什么我需要对这些实体对象进行分区并并行保留它们。更快,效果更好。但只有权衡是。每个线程都在其自己的事务中。如果任何失败。它将回滚它自己的线程事务,但不是全部。 有没有办法在单个事务中运行所有线程。这样我就可以控制交易了。 我正在使用JpaRepository存储库来保留或删除。
代码示例
@Transactional
public boolean executeTransaction(final EntityWrapper entityWrapper) {
transactionTemplate = new TransactionTemplate(transactionManagerRepo);
try {
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(TransactionStatus status) {
repo.saveAll(list); // Saves all at once. Batch commit. Which takes long time
// other way executing in ThreadPoolExecutor saving 200 records parallelly
entitiesList = partition(entitiesMasterList,200);
executor = ThreadPoolExecutor.initializeThreadPoolExecutor(entitiesList.size());
请提出建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。