由流程引擎管理的所有持久性实体(流程实例、任务……)都有唯一的Ids。这些Ids唯一地标识一个单独的任务、流程实例等。当这些实体被持久化到数据库时,这些ID被用作相应数据库表中的主键。

开箱即用,流程引擎提供了两种Id生成器的实现:

数据库ID生成器

数据库标识生成器是在ACT_GE_PROPERTY表的基础上使用序列生成器实现的。

这个ID生成器有利于调试和测试,因为它生成了人类可读的ID。

数据库标识生成器 不应该 在生产环境中使用,因为它不具有高并发性。

UUID生成器

StrongUuidGenerator使用一个UUID生成器,它在内部使用Java UUID Generator(JUG)库。

在生产环境始终使用UUID生成器。

Camunda Platform Full Distributions中,StrongUuidGenerator被预设为流程引擎所使用的默认Id 生成器。

如果你使用嵌入式流程引擎配置并使用Spring配置流程引擎,你需要在Spring配置中添加以下几行,以启用 “StrongUuidGenerator”。

<bean id="processEngineConfiguration" class="org.camunda.bpm.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">

  [...]

  <property name="idGenerator">
    <bean class="org.camunda.bpm.engine.impl.persistence.StrongUuidGenerator" />
  </property>

</bean>

另外,你需要以下Maven依赖项:

<dependency>
  <groupId>com.fasterxml.uuid</groupId>
  <artifactId>java-uuid-generator</artifactId>
  <scope>provided</scope>
  <version>3.1.2</version>
</dependency>

目录: