2017-08-08 61 views
0

使用activiti可以设计并行任务,但是这些任务是在内部顺序执行的(由同一个线程执行)。使用Activiti在独立线程中处理

我需要以异步方式执行任务,然后在任务完成后“加入”任务。

的过程是:

preparation -> execute task 1 
      -> execute task 2 at the same time 
     -> Then once both are finished, go one 

这是优化的问题,因为任务1和2是网络服务调用,并可能需要大量的时间。

从我阅读的所有内容来看,这对activiti来说是不可能的。使用异步任务,无法正确连接(检测到两者都已完成)。第一个完成的任务是确定的,但第二个抛出一个OptimisticLockException并重新启动(这是不可接受的)。

也许有一些我误解了,这是可能的,甚至容易吗?有人成功了吗?

回答

0

我不确定我是否明白你的问题。 但Activiti确实支持异步处理。

要加入两个异步进程,您可以创建另一个任务,等待两个异步任务完成。

+0

这正是我的问题。我试图把2个异步任务放到一个并行网关中,但它失败了,成为乐观锁定异常。文档解释说,完成“胜利”的第一项任务和其他任务由于aushc异常而失败。根据你的解释,应该用什么样的任务来加入问题任务? – Rolintocour