,直到每个分支都进入等待状态
抽象的说,会从流程图执行深度优先搜索,如果每个分支都遇到等待状态,就会返回
等待状态是稍后需要执行任务,Activiti会把当前状态保存到数据库中,然后等待下一次触发
触发可能来自外部...这段时间可以同步网关的状态
Activiti乐观锁是一个很好的解决方案吗?...乐观锁允许Activiti避免非一致性,确定流程不会"堵在汇聚网关": 或者所有分支都通过网关,或者数据库中的job正在尝试通过
虽然这是一个对于持久性和一致性的完美解决方案,但对于上层来说不一定是期望的行为...:
Activiti只会对同一个job重试估计次数(默认配置为3).之后,job还会在数据库里,但是不会再重试了.意味着这个操作必须手工执行job的触发
如果job有非事务方面的效果,不会因为失败的事务回滚...会保证无论什么时候获取一个流程实例的排他任务,都会把同一个流程实例的其他任务都取出来,放在同一个工作线程中执行.保证job是顺序执行的
从activiti 5.9开始,排他任务已经是默认配置.所以异步执行和定时器事件默认都是排他任务