美文网首页
工作流中高并发问题的出错提示和处理方式

工作流中高并发问题的出错提示和处理方式

作者: Mayuri樂 | 来源:发表于2018-09-27 09:11 被阅读0次

处理的bug,在工作流引擎中,如果同时开启多条线程对同一个环节进行状态更新,若存在线程正在更新,其他访问的线程就会返回一个ActivitiOptimisticLockingException 异常 :

(toString(updatedObject)+" was updated by another transaction concurrently"); 

经过一些资料查询,问题发生的原理是在serviceTask完成后,更新的ExecutionEntity 是同一条记录,而每一个serviceTask 此时处于 

两个不同的线程和事务当中,两个事务彼此不可见,任务开始时获取的ExecutionEntity完成相同,当一个事务成功更新后, 

另一个事务就会失败。这样保证了流程的准确执行,当该任务失败后,会在下一个JobExecutor 扫描时重新执行。此时获取的 

execution 的版本已经加1,此时任务正常结束。

处理并发问题牵涉到多线程管理。我的处理方式是对前一线程进行xx.join();保证前一线程结束后才开始下一组的线程处理,避免并发情况的发生

相关文章

  • 工作流中高并发问题的出错提示和处理方式

    处理的bug,在工作流引擎中,如果同时开启多条线程对同一个环节进行状态更新,若存在线程正在更新,其他访问的线程就会...

  • 提示五十六 打破时域耦合

    今天学习有关并发的内容,先看提示: 提示56 通过分析工作流来提高并发性。 作者先从时域耦合开始讲起,考虑对时间依...

  • 高并发和多线程理解

    随着IT的发展,传统的技术处理方式面临瓶颈,大数据时代,我们经常面临高并发和多线程的问题,高并发和多线程两者有什...

  • 浅谈JavaWeb中高并发业务处理

    文章地址:浅谈JavaWeb高并发业务处理 浅谈JavaWeb中高并发业务处理 在JavaWeb应用中高并发的业务...

  • 小白也能看懂的Java内存模型

    Java并发编程系列开坑了,Java并发编程可以说是中高级研发工程师的必备素养,也是中高级岗位面试必问的问题,本系...

  • 提示57-58

    今天学习有关并发的内容,先看提示: 提示57 共享状态是不正确的状态。提示58 随机故障通常是并发问题。 作者用餐...

  • 并发问题处理方式

    如何处理并发和同步?   主要是通过锁机制。 悲观锁:指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系...

  • go并发的选择

    Channel 并不是处理并发问题的“银弹”,有时候使用并发原语更简单,而且不容易出错。 共享资源的并发访问使用传...

  • react—connect

    问题描述: 控制台报出错误:dispatch is not a function,提示下面的代码有问题, 我的代码...

  • Contacts(TableViewController)报错总

    1. mock网络问题 问题:mock网络的JSON数据无法获取 提示:mock请求出错:mock....777...

网友评论

      本文标题:工作流中高并发问题的出错提示和处理方式

      本文链接:https://www.haomeiwen.com/subject/xpbsoftx.html