0

BPM 引擎是否允许在工作流实例之间共享状态?

我们有一个用例(POC),其中一个服务可能会收到多个相同的 REST 请求。每个请求都包含一个 ID - 如果它们的 ID 相同,我们认为两个请求相同。要求是使用 BPM 作为工作流引擎来实现这一点,并从 BPM 引擎级别处理任何并发性,而不是包含它的服务。行为可以概括为:

  • 如果已存在具有匹配 ID 的工作流实例,则服务应返回此工作流的进度值。
  • 如果具有匹配 ID 的工作流实例在过去定义的时间内结束,则服务返回此工作流的最新进度值(可能是“成功”、“失败”等)
  • 如果没有在定义的时间范围内结束的具有匹配 ID 的工作流实例,则应启动一个新实例,并且服务返回进度值,即“正在运行”。
  • 我们希望确保每个 ID 仅实例化一个工作流实例,无论有多少具有此 ID 的请求到达服务。

我想如果有一个我们可以使用的 BPM 引擎,它提供某种形式的工作流实例之间共享的同步状态,这将相对容易。是否有真正提供此类功能的 BPM 引擎?

4

0 回答 0