为什么不能直接删除task?

xyz20003 发布于 2014/05/21 12:06
阅读 1K+
收藏 0
为什么不能直接删除task?
加载中
0
x
xyz20003

activiti的推进模型是这样的。

当遇到一个userTask节点时,流程暂停,然后创建一个task,task里保存对应的executionId。这样task在complete时,就会触发等待状态的execution继续执行。

如果你删除了task,等待的execution怎么办?一直等待?

所以直接删除task会导致流程死锁,activiti内部就做了判断,如果task的execution不为null,说明有一个execution在等待着task的完成,如果你尝试直接delete,就抛出异常。禁止这种操作。

那什么task可以delete呢?你自己newTask()创建的task,因为没有execution再等待task的完成,所以可以直接delete()掉。

返回顶部
顶部