一、processEngineConfiguration配置
成都创新互联是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十余年时间我们累计服务了上千家以及全国政企客户,如发电机租赁等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞扬。 class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration
单独运行的流程引擎。Activiti会自己处理事务。 默认,数据库只在引擎启动时检测 (如果没有Activiti的表或者表结构不正确就会抛出异常)。
org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration
单元测试时的辅助类。Activiti会自己控制事务。 默认使用H2内存数据库。数据库表会在引擎启动时创建,关闭时删除。 使用它时,不需要其他配置(除非使用job执行器或邮件功能)。
org.activiti.spring.SpringProcessEngineConfiguration
在Spring环境下使用流程引擎。 参考Spring集成章节。
org.activiti.engine.impl.cfg.JtaProcessEngineConfiguration
单独运行流程引擎,并使用JTA事务。
databaseSchemaUpdate: 设置流程引擎启动和关闭时如何处理数据库表。false
(默认):检查数据库表的版本和依赖库的版本, 如果版本不匹配就抛出异常。true
: 构建流程引擎时,执行检查,如果需要就执行更新。 如果表不存在,就创建。create-drop
: 构建流程引擎时创建数据库表, 关闭流程引擎时删除这些表。
二、数据库相关配置
1、jdbc方式:
jdbcUrl: 数据库的JDBC URL。
jdbcDriver: 对应不同数据库类型的驱动。
jdbcUsername: 连接数据库的用户名。
jdbcPassword: 连接数据库的密码。
jdbcMaxActiveConnections: 连接池中处于被使用状态的连接的大值。默认为10。
jdbcMaxIdleConnections: 连接池中处于空闲状态的连接的大值。
jdbcMaxCheckoutTime: 连接被取出使用的最长时间,超过时间会被强制回收。 默认为20000(20秒)。
jdbcMaxWaitTime: 这是一个底层配置,让连接池可以在长时间无法获得连接时, 打印一条日志,并重新尝试获取一个连接。(避免因为错误配置导致沉默的操作失败)。 默认为20000(20秒)。
2、dbcp连接池方式:
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">...
三、JNDI数据库配置、支持的数据库、数据库创建http://www.mossle.com/docs/activiti/四、理解数据库表的命名
Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示
repository
。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。ACT_RU_*: 'RU'表示
runtime
。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。ACT_ID_*: 'ID'表示
identity
。 这些表包含身份信息,比如用户,组等等。ACT_HI_*: 'HI'表示
history
。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。ACT_GE_*:
通用
数据, 用于不同场景下。
五、Job执行器是管理一系列线程的组件,可以触发定时器(也包含后续的异步消息)。 在单元测试场景下,很难使用多线程。因此API允许查询()和执行job (),所以job可以在单元测试中控制。 要避免与job执行器冲突,可以关闭它。 默认,在流程引擎启动时就会激活。 如果不想在流程引擎启动后自动激活,可以设置
六、配置部署缓存所有流程定义都被缓存了(解析之后)避免每次使用前都要访问数据库, 因为流程定义数据是不会改变的。 默认,不会限制这个缓存。如果想限制流程定义缓存,可以添加如下配置
七、日志、映射诊断上下文需要打印工作流的日志时需要配置,默认不打印日志。九、事件处理1、事件监听器实现:实现事件监听器的唯一要求是实现org.activiti.engine.delegate.event.ActivitiEventListener。public class MyEventListener implements ActivitiEventListener { @Override public void onEvent(ActivitiEvent event) { switch (event.getType()) { case JOB_EXECUTION_SUCCESS: System.out.println("A job well done!"); break; case JOB_EXECUTION_FAILURE: System.out.println("A job has failed..."); break; default: System.out.println("Event received: " + event.getType()); } } @Override public boolean isFailOnException() { // The logic in the onEvent method of this listener is not critical, exceptions // can be ignored if logging fails... return false; } }方法决定了当事件分发时,方法抛出异常时的行为。 这里返回的是,会忽略异常。 当返回时,异常不会忽略,继续向上传播,迅速导致当前命令失败。 当事件是一个API调用的一部分时(或其他事务性操作,比如job执行), 事务就会回滚。当事件监听器中的行为不是业务性时,建议返回。 activiti提供了一些基础的实现,实现了事件监听器的常用场景。可以用来作为基类或监听器实现的样例:
org.activiti.engine.delegate.event.BaseEntityEventListener: 这个事件监听器的基类可以用来监听实体相关的事件,可以针对某一类型实体,也可以是全部实体。 它隐藏了类型检测,并提供了三个需要重写的方法:
onCreate(..)
,onUpdate(..)
和onDelete(..)
,当实体创建,更新,或删除时调用。对于其他实体相关的事件,会调用onEntityEvent(..)
。2、配置: class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> ...
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> ... 3、在运行阶段添加监听器:可以通过API(
RuntimeService
)在运行阶段添加或删除额外的事件监听器:void addEventListener(ActivitiEventListener listenerToAdd);
void addEventListener(ActivitiEventListener listenerToAdd, ActivitiEventType... types);
void removeEventListener(ActivitiEventListener listenerToRemove);
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前题目:activiti相关配置-创新互联
文章URL:http://bzwzjz.com/article/dggpci.html