事务和并发
异步操作
Activiti通过事务方式执行流程,可以根据需求定制
Activiti处理事务:
如果触发了Activiti的操作(开始流程,完成任务,触发流程继续执行),activiti会推进流程...,比如用户任务或接收到一个消息,也可能来自Activiti本身(定时器事件)
流程包含用户任务,服务任务和定时器事件
完成用户任务和校验地址是在同一个工作单元中,两者的成功和失败是原子性的....,异步执行生成发票....乐观锁允许Activiti避免非一致性,确定流程不会"堵在汇聚网关": 或者所有分支都通过网关,或者数据库中的job正在尝试通过
虽然这是一个对于持久性和一致性的完美解决方案,但对于上层来说不一定是期望的行为...会保证无论什么时候获取一个流程实例的排他任务,都会把同一个流程实例的其他任务都取出来,放在同一个工作线程中执行.保证job是顺序执行的
从activiti 5.9开始,排他任务已经是默认配置.所以异步执行和定时器事件默认都是排他任务