流程引擎缓存
部署缓存
所有流程定义都将被缓存(在解析之后),以避免每次需要流程定义时都轮询数据库,因为流程定义数据不会更改。这减少了引用流程定义的等待时间,从而提高了系统的性能。
自定义缓存的最大容量
如果一个进程定义很多,则高速缓存可能会占用大量内存,并且工作内存的容量可能会达到其极限。因此,在达到最大容量后,将从高速缓存中逐出最近最少使用的进程定义条目,以满足容量条件。但是,如果仍然遇到内存不足的问题,则可能有必要降低缓存的最大容量。
通过更改最大容量,该配置会影响以下所有缓存组件:
1、工艺定义
2、案例定义
3、决策定义
4、决策需求定义
在流程引擎配置中,可以指定缓存的最大容量。默认值为1000。创建流程引擎后,将设置此属性,并将相应地扫描和部署所有资源。例如,最大容量可以设置为120,如下所示:
....
注意:上述所有组件使用相同的容量,并且不可能为每个组件单独设置容量大小。此外,在默认的缓存实现中,容量大小与缓存中使用的最大元素数相对应。这就是说,您用尽的物理存储的绝对量(例如,兆字节)取决于相应过程定义所需的大小。
提供自定义缓存实现
一旦超过最大容量,缓存的默认实现将逐出最近最少使用的条目。如果有必要通过不同的标准选择收回的缓存条目,则可以提供自己的缓存实现。
通过从org.pangubpm.util.commons包实现Cache接口,可以做到这一点。例如,假设已实现以下类:
public class MyCacheImplementation
// implement interface methods and your own cache logic here}
接下来,需要将MyCacheImplementation插入自定义CacheFactory中:
public class MyCacheFactory extends CacheFactory {
@Override
public
return new MyCacheImplementation
}}
工厂用于为不同的缓存组件(例如流程定义或案例定义)提供缓存实现。一旦完成,就可以使用流程引擎配置,在其中可以指定一组资源。创建流程引擎后,将扫描并部署所有这些资源。在给定的示例中,现在可以按以下方式部署自定义缓存工厂:
....
技术支持:盘古BPM工作流平台
相关教程
- 2020-05-17
- 2020-05-16
- 2020-05-14
- 2020-05-14
- 2020-05-08
- 2020-05-08
- 2020-05-08
- 2020-05-07
- 2020-05-06
- 2020-05-05