,比如用户任务或接收到一个消息,也可能来自Activiti本身(定时器事件)
流程包含用户任务,服务任务和定时器事件
完成用户任务和校验地址是在同一个工作单元中,两者的成功和失败是原子性的....,生成一个发票,把发票发送给客户
生成发票不在同一个工作单元内了.如果生成发票出错不需要对用户任务进行回滚
Activiti实现的是完成用户任务(1),提交事务,返回给调用者应用.然后在后台的线程中...5.9开始 ,JobExecutor能保证同一个流程实例中的Job不会并发执行
排他任务的产生背景
一个并行网关,后面有三个服务任务,都设置为异步执行:
这样会添加三个job到数据库里.一旦job进入数据库...,其他分支会因为乐观锁导致失败
因为流程是被job触发的,Activiti会尝试在等待一段时间后尝试执行同一个job,这段时间可以同步网关的状态
Activiti乐观锁是一个很好的解决方案吗?...,在大多数场景下,排他任务都会让单独的实例运行的更迅速.而且,对于同一流程实例中的job,需要用到的数据也会利用执行的集群节点的缓存.如果任务没有在同一个节点执行,数据就必须每次从数据库重新读取了
流程实例授权