为什么不能直接删除task?
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()掉。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(1)
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()掉。