Flujo de trabajo integrado de la plataforma de desarrollo de aplicaciones: práctica de integración del motor de flujo de trabajo

modo integrado

Camunda admite tres modos de motor con las siguientes características:

  1. Motor gestionado por contenedor: El motor de procesos se ejecutará en la JVM como un componente independiente, gestionado por el contenedor CAMUNDA, es decir, el sistema de gestión oficial viene con él.
  2. Motor integrado: el motor de procesos se integrará en su aplicación y será administrado directamente por la aplicación, para que pueda obtener un mejor control y rendimiento.
  3. Motor remoto: el motor de procesos se ejecutará en otra JVM como un componente independiente, se ejecutará como un servidor BPM remoto e interactuará con el motor remoto a través de comunicación RMI o HTTP.

El primer método es en realidad una práctica general de componentes funcionales a gran escala, es decir, no solo tiene funciones básicas, sino que también tiene funciones auxiliares como administración y monitoreo para formar un sistema que puede ejecutarse de manera independiente y lograr el propósito de out- De la caja.
La tercera forma es ejecutar como un servicio independiente, lo que equivale a una integración superficial y solo se llama a través del resto de la API, que es adecuado para pilas de tecnología que no son de Java (como C #) o arquitecturas de microservicios y permanece relativamente independiente.
A menudo se dice que el segundo método es una integración profunda, que incrusta el motor en el programa de la aplicación, de modo que el rendimiento es el mejor, el control es más fuerte, se puede llamar directamente al método java local y se puede usar la tabla de la biblioteca de Camunda. se accede directamente, lo que es adecuado para algunos complejos En el caso de los negocios, escriba declaraciones sql para consultar o escribir datos en tablas.

En resumen, la integración de la plataforma adopta el segundo modo, la integración profunda.

inicialización

nuevo modulo

Primero cree un nuevo módulo funcional, siga las reglas de nomenclatura unificadas de la plataforma, asígnele el nombre plataforma-flujo de trabajo y herede de la plataforma

<parent>
  <groupId>tech.abc</groupId>
  <artifactId>abc-development-platform</artifactId>
  <version>2.0.0</version>
</parent>
<groupId>tech.abc</groupId>
<artifactId>platform-workflow</artifactId>
<packaging>jar</packaging>
<version>2.0.0</version>
<name>platform-workflow</name>
<description>工作流</description>

Modifique el archivo pom del proyecto e incluya el módulo en el proyecto

<modules>
      <module>platform-common</module>
      <module>platform-system</module>
      <module>platform-framework</module>
      ……
       <!--本次新增-->
      <module>platform-workflow</module>
      ……
      <module>platform-boot-starter</module>
     
  </modules>

agregar dependencias

Verifique la última versión actual, que es 7.19. La 7.13 utilizada en la integración hace tres años, la diferencia de versión no es grande, use la última versión, agregue la dependencia en Camunda,

<!-- 工作流 -->
<dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter</artifactId>
    <version>7.19.0</version>
</dependency>

El flujo de trabajo involucrará al personal del departamento, grupos de usuarios, etc., y agregará una dependencia en el módulo del sistema de plataforma

<dependency>
    <groupId>tech.abc</groupId>
    <artifactId>platform-system</artifactId>
</dependency>

resolver el conflicto

Analice los conflictos de paquetes pom y find jar
imagen.png
Teniendo en cuenta que, por un lado, se usa primero la versión actualizada y, por otro lado, mybatis-plus tiene un impacto más amplio, por lo que se usan exclusiones.

<!-- 工作流 -->
<dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter</artifactId>
    <version>7.19.0</version>
    <exclusions>
        <exclusion>
            <artifactId>mybatis</artifactId>
            <groupId>org.mybatis</groupId>
        </exclusion>
    </exclusions>
</dependency>

Incorporar inicio

Modifique el archivo pom de la plataforma de arranque del proyecto de agregación y agregue el módulo de flujo de trabajo, para que el motor de flujo de trabajo comience a ejecutarse con el inicio del sistema.

<dependencies>
    <dependency>
        <groupId>tech.abc</groupId>
        <artifactId>platform-framework</artifactId>
    </dependency>
    <dependency>
        <groupId>tech.abc</groupId>
        <artifactId>platform-entity-config</artifactId>
    </dependency>
    <dependency>
        <groupId>tech.abc</groupId>
        <artifactId>platform-cip-api</artifactId>
    </dependency>
    <dependency>
        <groupId>tech.abc</groupId>
        <artifactId>platform-cip-message</artifactId>
    </dependency>
    <dependency>
        <groupId>tech.abc</groupId>
        <artifactId>platform-workflow</artifactId>
    </dependency>
</dependencies>

agregar configuración

Modifique el archivo de configuración application-platform.yml de platform-boot-starter

#工作流配置
camunda:
  bpm:
    database:
      type: mysql
      schema-update: true

El foco está en el nodo de la base de datos, type especifica que el tipo de base de datos es mysql y schema-update tiene cuatro valores:

  1. falso: valor predeterminado, compara la versión guardada en la tabla de la base de datos al inicio, si no hay una tabla o la versión no coincide, se lanzará una excepción.
  2. verdadero: se actualizarán todas las tablas de la base de datos. Si la tabla no existe, se crea automáticamente.
  3. create_drop: crea una tabla cuando se inicia la actividad y elimina la tabla cuando se cierra (el motor debe apagarse manualmente para eliminar la tabla).
  4. drop-create: elimine la tabla antigua original cuando comience la actividad y luego cree una nueva tabla (no es necesario apagar el motor manualmente).

El primer tipo es solo para inspección y no para procesamiento, y generalmente se usa en el entorno de producción; los últimos tres se usan para el entorno de desarrollo, y 3 y 4 equivalen a volver automáticamente al estado del entorno inicial.
Por lo general, cuando se ejecuta por primera vez, establezca este valor en verdadero para generar automáticamente la tabla de la biblioteca y luego ajuste el valor en falso para eliminar la verificación y acelerar el inicio.

correr

Inicie springboot, puede ver en el registro de salida que camunda se ha cargado, y también se muestra la parte del cuadro rojo, se llama al script sql de inicialización, se crea la tabla de la base de datos para ver la base de datos y 49 tablas se crean automáticamente (
imagen.png
el siguiente figura es parte de la tabla de la base de datos, incompleta)
imagen.png

Información de la plataforma de desarrollo

Nombre de la plataforma: One Two Three Development Platform
Introducción: plataforma de desarrollo general de nivel empresarial
Información de diseño: columna csdn
Dirección de código abierto: protocolo de código abierto Gitee
: el código abierto del MIT
no es fácil, bienvenido a favoritos, me gusta, comentario.

Supongo que te gusta

Origin blog.csdn.net/seawaving/article/details/131668334
Recomendado
Clasificación