,生成一个发票,把发票发送给客户
生成发票不在同一个工作单元内了.如果生成发票出错不需要对用户任务进行回滚
Activiti实现的是完成用户任务(1),提交事务,返回给调用者应用.然后在后台的线程中...为什么会产生这样的问题:
因为服务任务配置成使用异步执行,可能相关的job都在同一时间被获取,被JobExecutor分配给不同的工作线程执行
结果是,三个单独的服务执行使用的事务在到达并发汇聚时可能重叠...,其他分支会因为乐观锁导致失败
因为流程是被job触发的,Activiti会尝试在等待一段时间后尝试执行同一个job,这段时间可以同步网关的状态
Activiti乐观锁是一个很好的解决方案吗?...:
Activiti只会对同一个job重试估计次数(默认配置为3).之后,job还会在数据库里,但是不会再重试了.意味着这个操作必须手工执行job的触发
如果job有非事务方面的效果,不会因为失败的事务回滚...但是要考虑:如果有多个流程实例时.所有其他流程实例的job也会分配给其他线程同步执行
意味着虽然Activiti不会同时执行一个流程实例的排他job,但是还会同步执行多个流程实例的异步执行
通过一个总体的预测