flowable并行任务回退
时间: 2023-12-09 08:36:19 浏览: 63
并行任务回退是指在流程中存在多个并行分支时,某个分支中的任务需要回退到之前的节点,而不影响其他分支的正常流转。下面是实现并行任务回退的方法:
1.对于同一条分支内部的任务回退,只需要将该分支中的任务节点依次回退即可,不会影响其他分支的正常流转。
2.对于不同分支之间的任务回退,需要将回退操作同步到同级分支中,即同级分支中的任务节点也需要回退。如果回退到上一级分支,则同级分支也需要回退。
3.对于并行分支节点的后续节点退回至并行分支节点,只需要将任务节点退回至指定节点即可,其余分支不受影响。
需要注意的是,为了实现并行任务回退,需要对业务逻辑进行抽象归纳,并采用分层架构,以便满足层层式退回的需求。
相关问题
flowable 并行任务
在 Flowable 中,可以通过使用 Parallel Gateway 来创建并行任务。Parallel Gateway 可以将一个节点拆分成多个并发执行的任务,这些任务将同时执行,直到它们全部完成才能继续执行下一个节点。
在使用 Parallel Gateway 时,需要注意以下几点:
1. 所有并行任务的入口和出口必须相同,否则会导致流程异常。
2. 需要确保所有并行任务都能正确地执行并完成,否则会导致流程无法继续执行。
3. 在并行任务中,可以使用 Exclusive Gateway 等节点来对流程进行条件判断和控制。
flowable 怎么实现回退
在Flowable中,回退(rollback)可以通过以下方式实现:
1. 使用历史记录(history):Flowable提供了历史记录API,可以查询流程实例的所有历史记录,包括任务、变量、流程实例等。可以通过查询历史记录来找到之前的任务,并将其重新激活,从而实现回退。
2. 使用子流程(subprocess)和跳过(skip):在子流程中可以设置跳过(skip)属性,当子流程结束时,如果跳过属性为true,则子流程中所有未完成的任务将被跳过。因此,可以将回退任务放到子流程中,在回退时将子流程重新启动并设置跳过属性为true,从而实现回退。
3. 使用事件网关(event gateway):事件网关可以根据特定的事件触发不同的流程分支。可以使用事件网关来实现回退,当事件触发时,选择回退分支,重新启动回退分支中的任务。
4. 使用Java API:Flowable还提供了Java API,可以通过Java代码来实现回退。可以查询流程实例的任务列表,找到之前的任务,并将其重新激活,从而实现回退。
需要注意的是,回退操作可能会破坏流程的完整性和一致性,因此需要仔细考虑和测试回退操作的影响。