返回

挂起与激活,Flowable流程实例的另一种生命状态

后端

Flowable流程引擎是一个功能强大的开源工作流平台,它允许用户轻松地创建和管理业务流程。在Flowable流程引擎中,流程实例的生命周期可以分为五种状态:

  • 未启动: 流程定义已创建,但尚未启动任何流程实例。
  • 运行中: 流程实例已启动,但尚未完成。
  • 已完成: 流程实例已完成所有活动,并且没有挂起。
  • 挂起: 流程实例已暂停,不能继续执行。
  • 终止: 流程实例已终止,无法再继续执行。

流程实例的挂起和激活

在某些情况下,您可能需要暂停正在运行的流程实例。例如,当您需要等待外部事件发生时,或者当您需要对流程实例进行故障排除时,就可以将流程实例挂起。要挂起流程实例,您可以使用Flowable流程引擎提供的suspend方法。

ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
  .processInstanceId(processInstanceId)
  .singleResult();

runtimeService.suspendProcessInstanceById(processInstanceId);

当流程实例被挂起后,它将进入挂起状态。在挂起状态下,流程实例不能继续执行。要激活挂起的流程实例,您可以使用Flowable流程引擎提供的activate方法。

runtimeService.activateProcessInstanceById(processInstanceId);

当流程实例被激活后,它将继续执行。

流程定义的挂起和激活

除了流程实例,Flowable流程引擎还允许您挂起和激活流程定义。要挂起流程定义,您可以使用Flowable流程引擎提供的suspendProcessDefinitionById方法。

repositoryService.suspendProcessDefinitionById(processDefinitionId);

当流程定义被挂起后,将无法据此创建新的流程实例。要激活挂起的流程定义,您可以使用Flowable流程引擎提供的activateProcessDefinitionById方法。

repositoryService.activateProcessDefinitionById(processDefinitionId);

当流程定义被激活后,将可以据此创建新的流程实例。

结语

在本文中,我们深入解析了Flowable流程实例的挂起与激活。我们了解到,流程实例和流程定义都可以被挂起和激活。我们还了解到,挂起的流程实例不能继续执行,而挂起的流程定义无法据此创建新的流程实例。