一、Flowable简介
Flowable 是一个轻量级、开源的业务流程管理(BPM)和工作流引擎,旨在帮助开发者和企业实现业务流程的自动化。它支持 BPMN 2.0 标准,适用于各种规模的企业和项目。Flowable 的核心功能包括流程定义、流程执行、任务管理、历史记录查询等,广泛应用于企业级应用中。
官网:https://www.flowable.com/open-source/docs/
二、Spring Boot3整合
环境:JDK21、Spring Boot3.4.1、Flowable7.1.0
1.引入依赖
-
- <dependency>
- <groupId>org.flowablegroupId>
- <artifactId>flowable-spring-boot-starterartifactId>
- <version>7.1.0version>
- dependency>
2.yml配置
注意本文数据源、数据库是MySQL和Druid,各位码友请根据实际情况调整
- spring:
- #配置数据源
- datasource:
- #MySQL
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:3306/foleable?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
- username: root
- password: 123456
- type: com.alibaba.druid.pool.DruidDataSource
-
- flowable:
- # 开启定时任务JOB
- async-executor-activate: true
- # 在引擎启动时,会自动更新数据库架构
- database-schema-update: true
3.线程池配置
1.提供一个全局的默认线程池
2.提供一个folwable依赖的线程池,注意Bean的名称一定要是applicationTaskExecutor
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-
- import java.util.concurrent.ThreadPoolExecutor;
-
- /**
- * 统一线程池管理
- *
- * @author xie
- **/
- @Configuration
- public class ThreadPoolTaskConfig {
-
- @Bean("applicationTaskExecutor")
- public ThreadPoolTaskExecutor applicationTaskExecutor() {
- ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
- //此方法返回可用处理器的虚拟机的最大数量; 不小于1
- int core = Runtime.getRuntime().availableProcessors();
- executor.setCorePoolSize(core);//设置核心线程数
- executor.setMaxPoolSize(core * 2 + 1);//设置最大线程数
- executor.setKeepAliveSeconds(120);//除核心线程外的线程存活时间
- executor.setQueueCapacity(120);//如果传入值大于0,底层队列使用的是LinkedBlockingQueue,否则默认使用SynchronousQueue
- executor.setThreadNamePrefix("thread-default-execute");//线程名称前缀
- executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());//设置拒绝策略,抛出 RejectedExecutionException来拒绝新任务的处理。
- // executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());//设置拒绝策略,使用主线程
- // executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy());//设置拒绝策略,直接丢弃掉
- // executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy());//设置拒绝策略,丢弃最早的未处理的任务请求。
- return executor;
- }
- }
不配置线程池可能出现以下错误
三、流程定义
官方流程设计器
docker run -p 9096:8080 -d --name flow flowable/flowable-ui:6.8.0
访问IP加启动容器的端口
默认账户/密码:admin/test
进入设计器
创建流程并设计
创建测试流程
这里先简单画个流程 后期写个详细流程图的绘画
评论记录:
回复评论: